DWORD dwError = 0;
hInstance = LoadLibrary(strDllName);
if(hInstance == NULL)
{
dwError = GetLastError();
return NULL;
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所在目录开始。
参考