Jas*_*son 3 delphi memory-leaks delphi-xe2
是否可以使用该RegisterExpectedMemoryLeak过程注册接口?
我有一个私有字段声明为:
FDragDropTarget: IDropTarget;
Run Code Online (Sandbox Code Playgroud)
然后我创建一个这样的实例并尝试为此对象注册已知的内存泄漏:
FDragDropTarget := TDropTarget.Create(lcMain.Handle, FDragDrop);
RegisterExpectedMemoryLeak(FDragDropTarget);
Run Code Online (Sandbox Code Playgroud)
但是我得到一个编译错误,指出存在不兼容的类型:'Pointer'和'IDropTarget'.对我来说,我的界面实例无论如何都是一个指针?
我可以这样做吗?它是通过我的.dpr文件中的ReportMemoryLeaksOnShutdown:= True语句报告的.
begin
ReportMemoryLeaksOnShutdown := True;
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm2, Form2);
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
TDropTarget是我对IDropTarget接口的实现:
TDropTarget = class(TInterfacedObject, IDropTarget)
...
end;
Run Code Online (Sandbox Code Playgroud)
谢谢
它不是泄漏的接口,而是实现它的对象.所以我认为那是需要注册的:
FDragDropTargetObj: TDropTarget;
FDragDropTarget: DropTarget;
FDragDropTargetObj := TDropTarget.Create(lcMain.Handle, FDragDrop);
FDragDropTarget := FDragDropTargetObj;
RegisterExpectedMemoryLeak(FDragDropTargetObj);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
530 次 |
| 最近记录: |