我有一個全局變量,簽名爲PostMessage
api和procedure
,嘗試獲得地址PostMessage
,然後在我的程序的其他幾個單元中調用PostMessage
。GetProcAddress如何獲取PostMessage api?
發生在我的測試PostMessage
不起作用,沒有任何操作,沒有出現沒有錯誤異常。
這裏是我的代碼:
var
PostMessageAddr_: function(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL;stdcall;
...
procedure GetPostMessage;
var
hModulo: HMODULE;
begin
hModulo := GetModuleHandle(User32);
PostMessageAddr_ := GetProcAddress(hModulo, 'PostMessage');
FreeLibrary(hModulo);
end;
感謝任何幫助。
不要調用FreeLibrary。只需從Windows單元調用PostMessage就簡單多了。你爲什麼這樣做? –
'PostMessage'就像廣告一樣工作。也許你的代碼中存在一個錯誤。在未加載的模塊上調用FreeLibrary肯定值得懷疑。 – IInspectable
@DavidHeffernan,我使用'GetProcAddress'來繞過IAT Hook:D –