Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 可执行依赖项中是否缺少仅包含DLL\u进程\u附件中代码的DLL?_C++_Winapi_Visual C++_Dll_Dll Injection - Fatal编程技术网

C++ 可执行依赖项中是否缺少仅包含DLL\u进程\u附件中代码的DLL?

C++ 可执行依赖项中是否缺少仅包含DLL\u进程\u附件中代码的DLL?,c++,winapi,visual-c++,dll,dll-injection,C++,Winapi,Visual C++,Dll,Dll Injection,我有一个基于DLL注入的项目,我希望在本地进行测试。在目标环境中,DLL是通过AppInit_DLL加载的,这意味着它几乎是在第一次执行进程时加载user32.DLL的同时加载的。所有这些工作,DLL创建一个日志文件证明成功 我现在希望在受控环境中测试DLL的行为,特别是在我在Visual Studio 2015中创建的测试win32程序的上下文中。我从DLL项目中获取生成的lib文件,并将其作为附加依赖项添加到项目设置->链接器->输入下,将包含该lib文件的目录添加到VC++目录->库目录,

我有一个基于DLL注入的项目,我希望在本地进行测试。在目标环境中,DLL是通过AppInit_DLL加载的,这意味着它几乎是在第一次执行进程时加载user32.DLL的同时加载的。所有这些工作,DLL创建一个日志文件证明成功

我现在希望在受控环境中测试DLL的行为,特别是在我在Visual Studio 2015中创建的测试win32程序的上下文中。我从DLL项目中获取生成的lib文件,并将其作为附加依赖项添加到项目设置->链接器->输入下,将包含该lib文件的目录添加到VC++目录->库目录,并将DLL文件放置在生成的可执行文件旁边。但是,当我运行可执行文件时,我看不到我的日志文件

我决定使用dependency walker进行进一步的研究,但我没有看到任何关于我的DLL的提及,因此似乎从未添加过依赖项

一些补充资料:

  • 两者都是使用相同的目标体系结构构建的
  • win32测试应用程序是使用/MDd(多线程调试DLL)构建的
  • 测试应用程序不使用从DLL导出的任何函数,因为我所要测试的是在DLL\u PROCESS\u ATTACH中执行的代码是否正确
我可以使用一个单独的注入进程在远程测试进程中创建一个线程来进行测试,但我希望复制在进程执行早期加载的DLL的行为,因此这种替代方法并不理想


任何帮助都将不胜感激。谢谢:-)RbMm的回答是正确的。问题是DLL没有被链接,因为它没有被使用。添加一个导出的方法并在测试程序中调用它就成功了。

在dll中添加任何导出的函数,然后在exe中导入该函数。将dll的库按库顺序放在第一位。这会给你(但不是确切地)一个例子:链接器对.lib文件进行依赖性分析,那些不需要的文件不会被链接。对于导入库和静态库均为True。众所周知,自注册(依赖于全局对象的构造函数)不适用于.lib文件。你的情况很相似,成功!谢谢,回想起来,它将被优化是非常有意义的。“我想测试的是,在DLL\u PROCESS\u ATTACH中执行的代码做了正确的事情”-对于大多数实际用途,该代码不应该做任何事情(请参阅)。此外,问题标题没有描述问题,一半的问题文本是多余的背景故事,与问题无关。稍微大修一下不会有什么坏处。我知道DLL\u进程\u附件的最佳实践。我用它来钩住低级函数。此外,我需要帮助的问题不是找出代码是否正确,而是为什么没有加载DLL。此外,我确信,正是这些背景故事为RbMb提供了快速评估和回答问题所需的信息。