Delphi 7
によって作成されたログを実行して表示するアプリケーションに取り組んでいますFastMM4.pas
。
アプリケーションはシステムのどこにでもインストールされます。私はFastMM4.pas
それがCreateProcess
(要するに私のアプリケーションを実行する)ように変更しました私の 前の質問からのコードとSertacAkyuzの答え
はleakTracker.exe
、fastmm4のログファイルをパラメータとして取り込み、ファイルを開いて表示します。変更fastMM4.pas
されたものは、他のアプリケーションで使用されます。
Procedure OpenTheLeakReader
begin
CmdLine := 'C:\Program Files\leakTracker\leakTracker.exe "';
lstrcat(CmdLine,CTheArGuements );
ZeroMemory(@SInfo, SizeOf(SInfo));
SInfo.cb := SizeOf(SInfo);
CreateProcess(nil, CmdLine, nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, sInfo, pInfo);
end;
path
これは正常に機能しますが、アプリケーションパスを取得するためにハードコーディングしました。
[FastMM4] -cannot use SysUtils.pas //*1
-cannot use Registry.pas //*2
-cannot use ParamStr(0) //*3
-cannot use unitWithSysRegis //*4
[someAplicationWhichWillUseFastMM4] -Uses FastMM4.pas
FAstMM4.pas
finalization
私はこれを持っています
if ifLeakedMemory then OpenTheLeakReader;
私は持つことができないので
*1 - SysUtils.pas
--FastMM4.passで、fastmmm4がアンインストールされるため
*2 - Registry.pas
-インストールパスを検索しleakTracker
ますが、fastmm4をアンインストールします
*3 - paramstr(0)
-アプリケーションの終了時にエラーが発生します。
*4 - unitWithSysRegis
--SysUtilsを使用すると、Fastm4のuses句でもレジストリを使用できません。
leakTracker.exe
そのため、CreateProcessを介してログファイルのパスを取得して`leakTracker.exe'に送信する方法に固執しています。