#include <stdio.h>
#include <WINDOWS.H>
typedef int (WINAPI *pMessageBoxA)( HWND hWnd , LPCSTR lpText,LPCSTR lpCaption, UINT uType);
int main()
{
/*
HMODULE hdml = LoadLibrary("user32.dll");
FARPROC proc = GetProcAddress(hdml,"MessageBoxA");
//printf("%x\n",proc);
//MessageBoxA(NULL,"nei rong","biao ti",MB_OK);
pMessageBoxA aaa;
aaa=(pMessageBoxA)proc;
aaa(NULL,"nei rong","biao ti",MB_OK);
*/
char a[20]="user32.dll";
char b[20]="MessageBoxA";
char c[20]="nei rong";
char d[20]="biao ti";
__asm
{
//HMODULE hdml = LoadLibrary("user32.dll");
mov esi,esp
lea eax,[a]
push eax
mov eax,LoadLibrary
call eax
mov dword ptr [ebp-54h],eax
mov esp,esi
//FARPROC proc = GetProcAddress(hdml,"MessageBoxA");
mov esi,esp
lea eax,[b]
push eax
mov eax,dword ptr [ebp-54h]
push eax
mov eax,GetProcAddress
call eax
mov esi,esp
mov dword ptr [ebp-54h],eax
// pMessageBoxA aaa;
// aaa=(pMessageBoxA)proc;
mov edx,dword ptr [ebp-54h]
mov dword ptr [ebp-58h],edx
// aaa(NULL,"nei rong","biao ti",MB_OK);
mov esi,esp
push 0
lea eax,[c]
push eax
lea eax,[d]
push eax
push 0
call dword ptr [ebp-58h]
mov esi,esp
}
return 0;
}