在 Delphi 11 64 位應用程式中使用 TIdHttpServer 和MadExcept時,每次我關閉應用程式時,將 MadExcept 設定為報告“資源泄漏”,我都會得到兩個泄漏,分別是 IdThreadSafe.pas 中的 TIdCriticalSection 和 SyncObjs.pas 中的 TCriticalSection。
這具有“錯誤標志”泄漏的所有特征——即 MadExcept 報告的泄漏實際上并不存在。但我必須確定。
使用舊的“ReportMemoryLeaksOnShutdown := True”不會報告這 2 個泄漏...
有沒有其他人看到這個?
謝謝。
uj5u.com熱心網友回復:
是的,它們是實際的泄漏,是的,這是故意的行為。IdThread.pas請參閱印地和IdStack.pas單位底部的評論。
話雖如此,它們是已注冊的泄漏,因此它們不應出現在泄漏報告中。在德爾福 2006 。System.RegisterExpectedMemoryLeak()被使用,因此如果 MadExcept 正確連接到 RTL(即提供TMemoryManagerEx.RegisterExpectedMemoryLeak回呼),它應該自動獲取注冊。
否則,對于早期版本,您可以使用定義的USE_MADEXCEPT(或USE_FASTMM4,或USE_LEAKCHECK)重新編譯 IndyIdCompilerDefines.inc以啟用泄漏注冊。
否則,您可以使用FREE_ON_FINAL定義的 in重新編譯 IndyIdCompilerDefines.inc以堵住漏洞。
uj5u.com熱心網友回復:
我在全新安裝 Delphi 11 和 madExcept(不過是 32 位應用程式)時遇到了完全相同的問題。您是否在不重新編譯 Indy 解碼器的情況下解決了問題?
我讀了你的回答雷米,在我看來,重新編譯 Indy 是不必要的,因此問題一定出在 madExcept 安裝上。我已經卸載并重新安裝了 madExcept 無濟于事。
還有什么想法嗎?
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/433778.html
下一篇:delphi11中的相機權限
