分類 | 分類/システム/ポインタ |
種類 | 命令 |
引数 | {文字列=「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ハンドル)