启动我的基本应用程序时出现的另一个错误,它只通过调用其init方法来测试我的DLL(我的项目的核心可交付成果)。我已经分析了使用Process Monitor发生了什么,并根据进程名称进行了过滤,只查找与我的基本应用程序的主要可执行文件相关的事件。
我应该在那找什么?我想在结果栏中任何表示SUCCESS的内容都没有指出问题 - 但其余的呢?它似乎是在世界各地寻找我的DLL,虽然它首先在当前目录中尝试并在那里找到它...
此处的摘录,以Procmon格式保存为CSV格式:http://pastebin.com/YHSeQUk0
正如我所说,它试图在很多地方打开我的DLL(遵循我的PATH环境变量?)。当在正确的文件夹中找到它时(与exe所在的位置相同并且正在运行),它会经历一系列操作,这些操作大多以SUCCESS结束(如果没有另外指定):
它第二次完成所有这一切。对我来说这看起来不错。没有其他与DLL相关的事件出现。
顶部还有另一个事件: HKLM \ System \ CurrentControlSet \ Control \ Srp \ GP \ DLL中的RegOpenKey首先导致REPARSE,然后在NAME NOT FOUND中。但事后发生了很多事情,这看起来并不像一个阻碍点 - 无论如何也不知道这是什么。
dumpbin / dependents ConsoleApplication1.exe产生以下内容:
文件类型:EXECUTABLE IMAGE
Image具有以下依赖项:
uss_map_interface.dll
VCRUNTIME140.dll
api-ms-win-crt-runtime-l1-1-0.dll
api-ms-win-crt-math-l1-1-0.dll
api-ms-win-crt-stdio-l1-1-0.dll
api-ms-win-crt-locale-l1-1-0.dll
api-ms-win-crt-heap-l1-1-0.dll
KERNEL32.dll
第一个是我的dll。如果我删除它,启动时的消息将变为"您的计算机中缺少uss_map_interface.dll" - 所以我无法相信这个woukld与我的DLL有关...我在Windows / System32或SysWOW64中找到的所有其他内容。
我正在使用带有x64配置的MVS Express 2015(v140)编译我的DLL和测试基本应用程序。如果我更改为x86配置,也会出现此问题。有趣的是,如果我在Qt项目中使用MinGW编译我的DLL - 它工作正常。如果可以提供提示,请遵循Qz / MinGW编译版本的依赖关系:
文件类型:DLL
Image具有以下依赖项:
libgcc_s_dw2-1.dll
KERNEL32.dll
msvcrt.dll
libstdc++-6.dll
无论如何,提前谢谢!