私は sourceforge.net の を使用するアプリケーションに取り組んでFastMM4
います。FastMM4.pas
そのため、最初の uses 句に を追加しました。アプリケーションでは、このようなの後にbatch
ファイルを実行する必要がありますFinalizeMemoryManager;
finalization
unit FastMM4;
initialization
RunInitializationCode;
finalization
{$ifndef PatchBCBTerminate}
FinalizeMemoryManager;
RunTheBatFileAtTheEnd; //my code here..calling a procedure
{$endif}
end.
RunTheBatFileAtTheEndの私のコードは次のとおりです。
procedure RunTheBatFileAtTheEnd;
begin
//some code here....
sFilePaTh:=SysUtils.ExtractFilePath(applicaTname)+sFileNameNoextension+'_log.nam';
ShellExecute(applcatiOnHAndle,'open', pchar(sExeName),pchar(sFilePaTh), nil, SW_SHOWNORMAL) ;
end;
このためSysUtils,shellapi
に、fastmm4 ユニットの uses 句で使用する必要があります。しかし、それらを使用すると、このメッセージが表示されます
しかし、使用から削除SysUtils,shellapi
すると機能します。まだ fastmm4 のすべての機能をインストールする必要がありますがSysUtils,shellapi
、fastmm4 はインストールされていません。
私は自分のユニットを持っていますが、そのファイナライズは fastmm4 のファイナライズの前に実行されます。
誰でもこの問題を解決する方法を教えてもらえますか?
編集-1
unit FastMM4;
//...
...
implementation
uses
{$ifndef Linux}Windows,{$ifdef FullDebugMode}{$ifdef Delphi4or5}ShlObj,{$else}
SHFolder,{$endif}{$endif}{$else}Libc,{$endif}FastMM4Messages,SysUtils,shellapi;
私のアプリケーション
program memCheckTest;
uses
FastMM4,
EDIT-2 :
(@SertacAkyuzの回答後)、削除SysUtils
して機能しましたが、バッチファイルを実行して外部アプリケーションを開く必要がありますRunTheBatFileAtTheEnd
. 理由は..FastMM4がfinalization
. sExeName
ファイルsFilePaTh
(.nam)を実行するアプリケーションです。誰でもこれを行う方法を教えてもらえますか? なしuninstalling FastMM4
。