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'に送信する方法に固執しています。