导出函数供lazarus使用
function DetourAttach( ppPtr:DWORD;pDetour:DWORD):DWORD;stdcall; external 'mydetour' name 'DetourAttach'; function DetourTransactionBegin():DWORD;stdcall; external 'mydetour' name 'DetourTransactionBegin'; function DetourTransactionCommit():DWORD;stdcall; external 'mydetour' name 'DetourTransactionCommit'; function DetourUpdateThread(hd:HANDLE):DWORD;stdcall; external 'mydetour' name 'DetourUpdateThread'; function DetourDetach(ppPtr:DWORD;pDetour:DWORD):DWORD;stdcall; external 'mydetour' name 'DetourDetach';
function hook( ppPtr:DWORD;pDetour:DWORD):DWORD; begin DetourTransactionBegin(); DetourUpdateThread(GetCurrentThread()); Result:=DetourAttach(ppPtr,pDetour); DetourTransactionCommit(); end; hook(DWORD(@@TrampolineMessageBox),DWORD(@InterceptMessageBox)); TrampolineMessageBox是函数指针,指向messagebox InterceptMessageBox是伪造函数 本人对delphi不熟,在dephi中 对函数指针 @@TrampolineMessageBox 意思是取函数指针地址 对函数指针来说,messagebox和@messagebox好像是一个意思