Embarcadero的TTaskbar存在内存泄漏问题。自从我在表单上加入了这个控件之后,每次关闭应用程序时FastMM都会报告一个泄漏。
我尝试使用以下代码来禁用FastMM:
procedure TMainForm.FormCreate(Sender: TObject);
begin
fastmm4.RegisterExpectedMemoryLeak(Taskbar);
end;
但它无法工作。如何注册此泄漏?
内存块已泄漏。其大小为:100
该块由线程0xC64分配,并且当时的堆栈跟踪(返回地址)是:406A52 409A7B 409CAC 4283A0
[System.SysUtils][System][System.SysUtils.FmtStr] 409CC6 40D775 7628A65F
[未知函数StretchDIBits] 7731594E
[未知函数RtlpNtMakeTemporaryKey] 7731594E
[未知函数RtlpNtMakeTemporaryKey] 773168F8
[未知函数RtlpNtMakeTemporaryKey] 773168DC
[未知函数RtlpNtMakeTemporaryKey]该块目前用于类对象:UnicodeString
分配号码为:2209内存块已泄漏。其大小为:36
该块由线程0xC64分配,并且当时的堆栈跟踪(返回地址)是:406A52 407D43 40846A 42CD40
[System.SysUtils][System][System.SysUtils.Exception.CreateFmt] 5DEDD7
[System.Win.TaskbarCore][System.Win][System.Win.TaskbarCore.TTaskbarBase.UpdateTab] 610F00
[Vcl.Taskbar][Vcl][Vcl.Taskbar.CheckMDI] 5DF39F
[System.Win.TaskbarCore][System.Win][System.Win.TaskbarCore.TTaskbarBase.ApplyTabsChanges] 610DB8
[Vcl.Taskbar][Vcl][Vcl.Taskbar.TCustomTaskbar.Initialize] 5EB044
[Vcl.Forms][Vcl][Vcl.Forms.TApplication.Run] 62573A
[MinimalTemplate.dpr][MinimalTemplate][MinimalTemplate.MinimalTemplate][26]该块目前用于类对象:ETaskbarException
分配号码为:2207此应用程序已泄漏内存。小块泄漏(除指针注册的预期泄漏外):
21 - 36 字节:ETaskbarException x 1
85 - 100 字节:UnicodeString x 1
[Vcl.Forms][Vcl][Vcl.Forms.TCustomForm.SetVisible] 5F5010
TTaskbarBase.UpdateTab
中。这真是个震惊! - David HeffernanTTaskbar
组件,并调用Taskbar1.UpdateTab()
即可重现此问题。 - Günther the Beautiful