如果放在主程序执行一下代码,系统所有主程序中出现错误的地方均可以执行我的过程MyExceptionHandlerbegin
Application.Initialize;
AppTracer := TRocketTracer.Create;
Application.OnException:=AppTracer.MyExceptionHandler;
Application.Run;
AppTracer.Destroy;
end.但我的程序中包含了好多DLL,DLL中产生的错误信息无法捕获并执行我的代码,查了写资料,不过还是没结果。请指教。我尝试使用一下代码来达到效果:
initialization
AppTracer := TRocketTracer.Create;
Application.OnException:=AppTracer.MyExceptionHandler;
finalization
AppTracer.Destroy;
可发现以上代码放在DLL工程代码中任何地方都无法编译。除非放在DLL工程的Unit中。
放在Unit中好像根本就不执行。请指教。
Application.Initialize;
AppTracer := TRocketTracer.Create;
Application.OnException:=AppTracer.MyExceptionHandler;
Application.Run;
AppTracer.Destroy;
end.但我的程序中包含了好多DLL,DLL中产生的错误信息无法捕获并执行我的代码,查了写资料,不过还是没结果。请指教。我尝试使用一下代码来达到效果:
initialization
AppTracer := TRocketTracer.Create;
Application.OnException:=AppTracer.MyExceptionHandler;
finalization
AppTracer.Destroy;
可发现以上代码放在DLL工程代码中任何地方都无法编译。除非放在DLL工程的Unit中。
放在Unit中好像根本就不执行。请指教。
procedure DllEnterPoint(Reason: Integer);stdcall;
begin
case Reason of
DLL_PROCESS_ATTACH:
begin
AppTracer := TRocketTracer.Create;
Application.OnException:=AppTracer.MyExceptionHandler;
end;
DLL_PROCESS_DETACH:
begin
AppTracer.Destroy;
end;
end;
end;exports //导出函数/方法
ShowForm,
Test;begin
DLLProc := @DllEnterPoint;
DLLEnterPoint(DLL_PROCESS_ATTACH);
end.
procedure IniLibValues(AppHandle: Longword;AIcon:THandle
;CollectMsg:TProjectComm);stdcall;
begin
Application.Handle := AppHandle;
Application.Icon.Handle :=AIcon;
RComm:=CollectMsg;
end;
我传入了主Application的Handle,主Application的Icon
,还传入了一些公开常量。
Debugger Fault Notification
---------------------------
Project D:\Work\Client\bin\Hotel.exe raised too many consecutive exceptions: 'access violation at 0x02703b82: read of address 0x02b8f830'. Process Stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------