そのような方法で MessageBox() 関数を呼び出したい:
1)。必要なライブラリをロードします
2)。関数アドレスを取得する
3)。あれを呼べ
したがって、私が理解しているような目的のために、 MessageBox 関数ですべての型の引数を持つ新しい型を定義する必要があります。
INT を返し、HWND、LPCSTR、LPCSTR、UNIT を受け入れます。
だから私は新しいタイプを登録しました:
typedef int(__stdcall *msgbox)(HWND, LPCSTR, LPCSTR, UINT);
そのような関数の呼び出しに問題があります。そのような方法はすべての機能で機能しますか、それともエクスポートされた場合にのみ機能しますか?
そのような方法で MessageBox を正確に呼び出すにはどうすればよいですか?
完全なコード:
#include <iostream>
#include <windows.h>
using namespace std;
typedef int(__stdcall *msgbox)(HWND, LPCSTR, LPCSTR, UINT);
int main(void)
{
HINSTANCE__ *hModule = LoadLibrary(L"\\Windows\\System32\\User32.dll");
msgbox *me = 0;
if(hModule != 0)
{
me = (msgbox*)GetProcAddress(hModule, "MessageBox");
}
return 0;
}