GetProcAddress的用法
关键词: GetProcAddress
/*
本程序通过GetProcAddress方法调用Api
int (__stdcall *MsgBox)(HWND ,LPSTR,LPSTR,int);
(FARPROC&)MsgBox=GetProcAddress(hMod,\"MessageBoxA\");
MsgBox(Null,"hello,I love you","Caption",0);
typedef int (__stdcall *MSGBOX)(HWND ,LPSTR ,LPSTR ,INT);
MSGBOX MsgBox2=(MSGBOX)GetProcAddress(hMod,"MessageBoxA");
MsgBox2(Null,"hello,I love you","Caption",0);
*/
#include <windows.h>
void main()
{
HMODULE hMod=LoadLibrary("user32.dll");
/Api调用的方法一//
int (__stdcall *MsgBox1)(HWND ,LPSTR,LPSTR,int);
(FARPROC&)MsgBox1=GetProcAddress(hMod,"MessageBoxA");
/Api调用的方法二//
typedef int (__stdcall *MSGBOX)(HWND ,LPSTR ,LPSTR ,INT);
MSGBOX MsgBox2=(MSGBOX)GetProcAddress(hMod,"MessageBoxA");
MsgBox1(NULL,"通过函数指针调用Api成功!\n\n"
"1、int (__stdcall *MsgBox)(HWND ,LPSTR,LPSTR,int);\n"
"2、(FARPROC&)MsgBox=GetProcAddress(hMod,\"MessageBoxA\");\n"
"3、MsgBox(Null,\"hello,I love you\",\"Caption\",0);",
"通过函数指针调用Api,方法一:",0);
MsgBox2(NULL,"通过函数指针调用Api成功!\n\n"
"1、typedef int (__stdcall *MSGBOX)(HWND ,LPSTR ,LPSTR ,INT);\n"
"2、MSGBOX MsgBox2=(MSGBOX)GetProcAddress(hMod,\"MessageBoxA\");\n"
"3、MsgBox2(Null,\"hello,I love you\",\"Caption\",0);",
"通过函数指针调用Api,方法二:",0);
return;
}