Loadlibrary总是返回NULL

时间:2014-03-27 09:42:05

标签: c winapi visual-c++ loadlibrary

HINSTANCE hinstLib=LoadLibrary("C:\\mydll.dll");

我不知道为什么在运行该行代码后我总是得到0

实际上我还有另一个COM dll,即mydllCOM.dll,我已经使用regsvr32命令成功注册了。我想在我的应用程序中使用上面的(mydll.dll),但总是在提到的行中失败。

我从GetLastError is 193获得的错误代码,我不知道,为什么它是关于错误类型的dll

3 个答案:

答案 0 :(得分:11)

错误代码看起来像是“错误的位”,这意味着您可能正在混合使用32位和64位可执行文件/ DLL。项目属性“Linker-> Advanced-> Target Machine”中的设置应设置为DLL中的相同值以及加载该DLL的可执行文件中的值。

答案 1 :(得分:3)

我有一个类似的问题,但有一个dll不是我的。 解决方案是更改字符集(即项目属性 - >配置属性 - >常规 - >字符集)。 默认为unicode,当我将其更改为multi-Byte时,我设法加载了dll。

答案 2 :(得分:0)

您无法将32位DLL加载到64位应用程序中,反之亦然。

您需要使用相同的Application设置重新编译DllLinker->Advanced->Target Machine