仅包含 DLL_PROCESS_ATTACH 中的代码的 DLL 是否缺少可执行依赖项?

DLL only containing code in DLL_PROCESS_ATTACH missing from executable dependencies?

我有一个基于 DLL 注入的项目,我希望在本地进行测试。在目标环境中,DLL 通过 AppInit_DLLs 加载,这意味着它大约在 user32.dll 加载的同时加载,当进程首次执行时。所有这些都有效,DLL 创建了一个日志文件来证明成功。

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

我决定使用 dependency walker 进行进一步调查,但我没有看到任何关于我的 DLL 的信息,因此似乎从未添加依赖项。

一些附加信息:

我可以使用单独的注入进程在远程测试进程中创建线程进行测试,但我希望复制在进程执行早期加载的 DLL 的行为,因此这种替代方案并不理想。

如有任何帮助,我们将不胜感激。谢谢:-)

RbMm 的回答是正确的。问题是 DLL 没有被链接,因为它没有被使用。添加一个导出的方法并在测试程序中调用它就成功了。