我有一个函数库int Message()
,我需要从我的程序中调用它。
我的程序(c++ msvc2010):
typedef int (_cdecl*pproc)();
pproc out;
using namespace std;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
HINSTANCE hLib = LoadLibrary(L"messager.dll");
if(hLib == NULL) return 0;
out = (pproc)GetProcAddress(hLib,"Message");
printf("out %i", (out == NULL)); //0
if (out == NULL) {
printf("Error getting Address");
}
else {
int j = out(); // Error Access violation
}
FreeLibrary(hLib);
return 0;
}
错误:0xC0000005:访问冲突读取位置“0x0045a780
来自 dll (c mingw) 的函数:
__declspec(dllexport) int Message() {
MessageBox(NULL, TEXT("1"), TEXT("1"), MB_OK);
return main(0, NULL);
}
dll垃圾箱:
ordinal hint RVA name
1 0 00011AA0 Message