我想以这种方式调用 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;
}