得到kernel32基地址后如何调用函数
时间: 2023-04-27 07:00:35 浏览: 190
动态获取kernel32.dll函数
要调用kernel32中的函数,需要先获取函数的地址。可以使用GetModuleHandle函数获取kernel32.dll的基地址,然后使用GetProcAddress函数获取函数的地址。例如,要调用MessageBox函数:
1. 获取kernel32.dll的基地址:
HMODULE hModule = GetModuleHandle(L"kernel32.dll");
2. 获取MessageBox函数的地址:
FARPROC pFunc = GetProcAddress(hModule, "MessageBoxW");
3. 调用MessageBox函数:
int nRet = ((int(WINAPI*)(HWND, LPCWSTR, LPCWSTR, UINT))pFunc)(NULL, L"Hello World", L"Message", MB_OK);
其中,WINAPI是函数的调用约定,HWND、LPCWSTR、LPCWSTR和UINT是MessageBox函数的参数类型,pFunc是MessageBox函数的地址,((int(WINAPI*)(HWND, LPCWSTR, LPCWSTR, UINT))pFunc)是将pFunc转换为函数指针类型,然后再调用函数。
阅读全文