loadlibrary返回 NULL , 错误码值126

DWORD dwError = 0;
hInstance = LoadLibrary(strDllName);
if(hInstance == NULL)
{
dwError = GetLastError();
return NULL;

}


加断点发现    dwError 等于126  DLL路径都正确  百思不得解,


后来想了想之前都挺正常的,怎么突然就这样了,刚刚只是在dll的代码中调用了另一个DLL,难道是这个地方出问题?注释掉对另一个DLL的调用代码,果然一切正常!


解决办法是用LoadLibraryEx:

LoadLibraryEx("DLL绝对路径", NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
通过指定LOAD_WITH_ALTERED_SEARCH_PATH,让系统DLL搜索顺序从DLL所在目录开始。


参考

http://blog.csdn.net/dragoo1/article/details/45641529

http://blog.sina.com.cn/s/blog_900bcd0501017tsh.html

你可能感兴趣的:(loadlibrary返回 NULL , 错误码值126)