我想調用LoadLibrary的DLL放置在EXE路徑。 它給錯誤ERROR_FUNCTION_FAILED。下面是代碼,請讓我知道1627LoadLibrary(...)失敗,錯誤代碼1627:ERROR_FUNCTION_FAILED
typedef int (__stdcall *func)();
int DynamicLoad_Lib()
{
func call;
int iReturn;
cout<<"\n\n DynamicLoad_Lib \n\n";
HINSTANCE hinstLib = LoadLibrary(L"MYLib.dll");
cout<<"\n\nGetLastError() "<<GetLastError()<<"\n";
if(hinstLib == NULL)
return 0;
call = (func_another)GetProcAddress(hinstLib, "Initialize");
if(call == NULL)
{
FreeLibrary(hinstLib);
return 0;
}
iReturn = (*call)();
call = (func)GetProcAddress(hinstLib, "Terminate");
if(call == NULL)
{
FreeLibrary(hinstLib);
return 0;
}
FreeLibrary(hinstLib);
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
DynamicLoad_Lib();
return 0;
}
'func_another'沒有在任何地方定義,爲什麼它不是'func'?發佈真實的代碼。 – PaulMcKenzie
您正在調用GetLastError(),但是您不知道LoadLibrary實際上是否在此時失敗。請將您的GetLastError調用放在'if(hinstLib == NULL)' – nos
正文內。感謝您的回覆,它是複製粘貼錯誤。錯誤發生在cout之前<<「\ n \ nGetLastError()」<< GetLastError()<<「\ n」; – user2890924