为什么找不到dll中的函数?
各位大侠。我首先再win32下编写了一个mydll.dll:
#ifdef MYDLL_EXPORTS
#define DLL_API __declspec(dllexport)
#else
#define DLL_API __declspec(dllimport)
#endif
#include <windows.h>
DLL_API int CALLBACK MyDllApi();
DLL_API int CALLBACK MyDllApi(){
return MessageBox(NULL, TEXT("MyDllApi"), TEXT("MyDllApi()"), MB_OK);
}
生成了mydll.dll
然后用一个程序测试它:
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR, int){
typedef int (CALLBACK * PFNMYDLLAPI)();
PFNMYDLLAPI pfnMyDllApi;
HINSTANCE hLibrary = LoadLibrary(TEXT("mydll.dll"));
if(!hLibrary){
MessageBox(NULL, TEXT("Couldn't find mydll.dll"), TEXT("Error"), MB_OK);
return FALSE;
}
pfnMyDllApi = (PFNMYDLLAPI)GetProcAddress(hLibrary, TEXT("MyDllApi"));
if(pfnMyDllApi){
pfnMyDllApi();
}
else{ // ***************************
MessageBox(NULL, TEXT("Couldn't get process address"), TEXT("ERROR"), MB_OK);
}
FreeLibrary(hLibrary);
return TRUE;
}
我已经把mydll.dll放到了这个程序的目录里面,可每次执行都是
// ***************************里面的东西,也就是
GetProcAddress()并没有找到MyDllApi,请教该如何解决呢?