在C#程序中,我动态加载C ++ DLL。我使用DllImport(" kernel32.dll")来调用LoadLibrary()。我在两台PC上运行这个程序,两者都是Windows10 64位。在一台PC上,Visual Studio软件安装在另一台PC上。程序在具有VS的PC上正常工作但LoadLibrary(foo.dll)在没有VS的情况下返回零。 LastWin32Error为零。我没有任何例外。该DLL与可执行文件位于同一文件夹中。我使用LoadLibrary()的参数只是dll名称,没有绝对路径或相对路径(事实上我也尝试了相同结果的完整路径名)。在带有VS的PC上,程序不仅可以在VS环境中启动,还可以在启动可执行文件的情况下运行。秘密是什么?我该如何调试? 感谢
答案 0 :(得分:0)
我的直觉是无法找到依赖项 - DLL依赖的其他文件。
为了追踪这一点,我使用Process Monitor之类的工具来查看LoadLibrary
调用正在运行时发生的所有文件系统访问。