议题作者:lfq7413
信息来源:邪恶八进制信息安全团队(
www.eviloctal.com)
本人初学DLL编程~遇到了不少问题~高手看下~
test1.DLL test.exe
下面是test1.DLL的代码~
复制内容到剪贴板
代码:
#include <windows.h>
_declspec(DLLexport) void manage()
{
MessageBox(0,"The Fun manage","HI",MB_OK);
return;
}
BOOL APIENTRY DLLMain(HINSTANCE hinstDLL,DWORD fdwReason,PVOID fImpload)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
MessageBox(0,"test1 ATTACH","HI",MB_OK);
default:
break;
}
return TRUE;
}编译通过,无错误~
test.exe的代码~
复制内容到剪贴板
代码:
#include <windows.h>
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
)
{
HINSTANCE hDLL;
FARPROC funAddr;
hDLL=LoadLibrary("test1.dll");
if(!hDLL)
{
MessageBox(0,"wroing","HI",MB_OK);
exit(1);
}
funAddr=GetProcAddress(NULL,"manage");
(*funAddr)();//**************************问题可能在这~
MessageBox(0,"HI","HI",MB_OK);
return TRUE;
}编译通过,也无错误,但是在运行test.exe是却总是显示“test.exe遇到问题需要关闭”
在将(*funAddr)();注释掉之后,又可以正常显示下面的MessageBox,
不知道出错在哪儿~~我是用MinGW编译的~~~
请高手帮忙解决一下~