| 分類 | 分類/システム/ポインタ |
| 種類 | 命令 |
| 引数 | {文字列=「stdcall」}CALLTYPE,{参照渡し}FUNC,{整数}SIZE,{参照渡し}RECT,RET |
| 説明 | 関数ポインタFUNCを実行する。SIZEは引数スタックのサイズ、RECTは引数スタックに積む実データ、RETは返り値の型名を文字列で指定する。CALLTYPEはstdcallかcdeclを指定する(デフォルトはstdcall)。 |
| 識別 | id:162 |
MessageBoxを呼び出すサンプルです。
●LoadLibrary(lpFileName) =DLL("kernel32.dll",
"HMODULE LoadLibraryA(
LPCTSTR lpFileName // モジュールのファイル名
)")
●GetProcAddress(hModule,lpProcName) =DLL("kernel32.dll",
"PFUNC GetProcAddress(
HMODULE hModule, // DLL モジュールのハンドル
LPCSTR lpProcName // 関数名
)")
●FreeLibrary(hModule) =DLL("kernel32.dll",
"BOOL FreeLibrary(
HMODULE hModule // DLL モジュールのハンドル
)")
DLLハンドルはLoadLibrary(「user32.dll」)
もしそれが0ならば
終わる
関数ポインタはGetProcAddress(DLLハンドル,「MessageBoxA」)
もしそれが0ならば
終わる
タイトルとは文字列=「サンプル」
テキストとは文字列=「テスト」
引数とは文字列
引数に4*4を確保#サイズが4バイト以下の引数が4つなので
母艦のハンドルを引数の1に「int」でバイナリ設定
POINTER(テキスト)を引数の5に「int」でバイナリ設定
POINTER(タイトル)を引数の9に「int」でバイナリ設定
1を引数の13に「int」でバイナリ設定
EXEC_PTR(「stdcall」,関数ポインタ,4*4,引数,「long」)
FreeLibrary(DLLハンドル)