我想要抓MessageBoxW的位置,所以我寫了以下程式去執行這件事
#include "stdafx.h"
#include <stdlib.h>
#include <windows.h>
int main()
{
FARPROC addr;
(FARPROC&) addr = GetProcAddress(LoadLibrary(TEXT("USER32.dll")), "MessageBoxW");
system("PAUSE");
return 0;
}
但它的結果我用OD看,GetProcAddress回傳的位置都是apphelp.dll裡面的位置,進去看也不是MessageBoxW的函數,我已用OD確認過LoadLibrary(TEXT("USER32.dll"))是USER32.dll的基址,不知道為何會這樣,一直抓到別的DLL去。
看 LoadLibrary(TEXT("USER32.dll")
有用 TEXT("") 猜測所用的編譯環境是否為UNICODE
所以 "MessageBoxW" 是否也改用 TEXT("MessageBoxW") 試試呢?