DLLData^.Hook := SetWindowsHookEx(WH_GETMESSAGE,@HookProc, Hinstance, ThreadID);将dll注入到进程A中后,通过钩子函数修改了A中某些api,procedure HookProc(nCode, wParam, lParam:
LongWORD);stdcall;
begin
if not DLLData^.Hooked then
begin
HookAPI;
DLLData^.Hooked := True;
end;
CallNextHookEx(DLLData^.Hook, nCode, wParam, lParam);
end;卸载前希望把修改了的api改回来,但此时我已经无法控制A中注入的dll,
//主程序中调用该过程
procedure UnHook;stdcall;
begin
UnHookAPI;//这里将api改回
UnhookWindowsHookEx(DLLData^.Hook);
end;只能控制本程序调用的dll(根本和A不在一个进程当然没有用)所以卸载钩子后,因A中的api入口还指向我的dll而运行错误应该怎么正确的卸载?