我使用WMI
SMBios
得到一些硬件信息清除創建的對象存儲
我不想用戶看到什麼是在內存中使用的序列號,所以我試圖清除它
,當我在記憶在許多地方調用
SMBios:=TSMBios.Create;
//my code
SMBios.free;
的SMBIOS對象仍
我想這代碼上Destroy Event
if Assigned(FRawSMBIOSData.SMBIOSTableData) then
begin
ZeroMemory(FRawSMBIOSData.SMBIOSTableData,FRawSMBIOSData.Length);
FreeMem(FRawSMBIOSData.SMBIOSTableData);
end;
它GetSystemFirmwareTable
API代碼SMBIOS偉大的工作,但在WMI它刪除某些記憶,但我仍然可以找到幾個街區
爲什麼調用對象後想.free或freeandnil使用過的內存未發佈
任何想法如何強制應用程序釋放它?
你在做什麼是正確的。當你免費撥打電話時,德爾福電話只需撥打Freemem即可。它不會將內存清零。你最好的選擇是使用/修改內存管理器來包含這種行爲。 – whosrdaddy
隨着['FastMM'(http://sourceforge.net/projects/fastmm/)你可以設置'{$定義AlwaysClearFreedMemory}'選項來清除釋放的內存。它雖然帶來了性能。 –
感謝whosrdaddy和LU RD,我會盡量FastMM –