過程當中最麻煩的還是在FullDebugMode開啟後所帶來編譯問題,不是可編譯無效果,就是完全無法編譯。不論是參考對岸常用的4.78版,或是最新的4.97版,結果都是不正常的。
最後是參考這個網址:좀 황당한 이야기
(你沒看錯,真的是韓文)
裡面寫到相關的一些方法,可是我在4.78和4.97中並沒有找到相關行數,可是按照
連行數都出來了,那找對應的版本來試試如何?
於是在不知道該作者使用的版本的情形下,去FastMM網站一個一個慢慢找。
最後才發現,原來是: FastMM4.94
只差一個小版本,我找了好久呀~~~~~!(應該從頭找回去的)
這個過程,我花了數個月的時間…
按照它的步驟:
1.將FaseMM4.pas, FastMM4Messages.pas, FastMM4Options.inc, FastMM4BCB.cpp, FastMM_FullDebugMode.dll, FastMM_FullDebugMode.lib複製到要使用FastMM4的專案目錄內
2.Project->Add to Project - "FastMM4Message.pas"
3.Project->Add to Project - "FastMM4.pas"
4.Project->Add to Project - "FastMM4BCB.cpp"
5.開啟FastMM4BCB.cpp,加入 #include <tchar.h>,存檔
6.修改FastMM4.pas, 1337行的 {$ifdef Delphi6AndUp}修改為 {.$ifdef Delphi6AndUp}
7.修改FastMM4.pas, 1343行的 {$endif}修改為 {.$endif}
以上是一定要做的步驟
第8項則是視需要而設定
8.修改FastMM4Option.inc 114行的 {.$define FullDebugMode} 修改為 {$define FullDebugMode}
第9項是非官方的安裝法
9. 開啟WinMain,加入FastMM4BCB.cpp並置頂,類似像:
#include
#pragma hdrstop
//---------------------------------------------------------------------------
USEOBJ("FastMM4BCB.cpp");
第8項功能與FastMM_FullDebugMode.dll相依
開啟此功能後,所有會導致Memory Leak的項目都會記載到類似以下的檔名,並置於專案目錄中:
ProjectName_MemoryManager_EventLog.txt
此外,因為 VCL Framework本身就有些許Memory Leak,所以訊息會一直跳出來,可以在FastMM4Option.inc,將 EnableMemoryLeakReporting 項目關閉,如此一來,就不會每次編譯都會跳出嚇死人的錯誤訊息,但仍然會記錄在Log裡。如果要完全不看到的話,就必須再修改FastMM4.pas了。那又是另一個故事啦!
該作者在處理FastMM4Option.inc時覺得很麻煩,於是找了個很方便的工具來設定它
NEW: FastMM4 Options Interface
好累哦…
沒有留言:
張貼留言