我发现Stack Overflow是我们所有澄清中最好的一组。我有用C语言编写的本机dll。我使用VC ++编译了proj(VS 2008),使用我的C#应用程序我通过Dllimport调用了dll函数。问题是它无法加载DLL。它说无法加载DLL。
我已经编译到x86到x64的平台我的dll和我的应用程序。如果你们帮助我解决这个问题,那将是非常好的。
是否有可能检查dll未加载的原因。
提前致谢。
答案 0 :(得分:1)
尝试使用sysinternal的Process Monitor查看应用程序从哪里加载dll。
LoadLibrary的Win32文档链接details,了解它如何搜索dll。
答案 1 :(得分:1)
我在这些方面遇到过一次问题。我有一个C ++ DLL作为一个硬件的接口,我需要从C#调用。但是,如果没有插入硬件,它将无法通过DllImport调用。这是因为DLL初始化函数返回失败,所以C#只是说它无法加载DLL,它可能与那里没有关系DLL是。
在C代码中设置DLL时,请检查是否没有引起某种错误。
答案 2 :(得分:0)
Dependency Walker是分析dll用于加载的东西的好工具。 对于本机可执行文件,它也可以加载exe并使用“Profile”菜单项 甚至显示使用延迟加载加载的dll,如果没有显示 只是加载了DLL。