2012-09-21 21 views
8

コンパイルされたexeファイルには、第三者のコンポーネントユニットにハードコードされたパスがあることに気付きました。私はVirtualTreesコンポーネントを使用する場合 は、例えば、TVirtualStringTreeは、コンパイルされた実行可能ファイルに私は何回か、このパスを見つけることができます。ユニットパスが実行可能ファイルでコンパイルされました

C:\Program Files\Borland\Delphi7\Source\Virtual Treeview\Source\VirtualTrees.pas 

これは私が使用するほぼすべてのサードパーティのコンポーネント、exeファイル内のコンポーネントのユニットへのパスに適用されます。 私はこの情報を実行可能ファイルにするべきではないと思っていますが、Delphi 7の設定やプロジェクトの設定を変更する必要はありません。 誰にも解決策はありますか?

答えて

10

あなたが見ているのは、アサートのソースを保持しているアサーションメッセージです。 Project/Optionsに移動するか、プロジェクトオプションダイアログを開くCTRL + SHIFT + F11ショートカットを使用すると、それらを無効にすることができます。

CompilerタブのAssertionsチェックボックスをオフにして、プロジェクトオプションを保存してプロジェクトを再構築します。再コンパイルせずに再構築してください!

enter image description here

あなたはそのオプションがオンになっていますときにAssertを使用するときは、常に表示されますあなたのバイナリのパス。

+0

ありがとうTLama :) – Shadi

+1

大歓迎です!とにかく、あなたはデバッグ環境でアサーションを有効にしておき、リリースバージョンをビルドするときにそれらをオフにする必要があります。これは、バッチファイルビルドスクリプトから簡単に実行できます。 – TLama

+5

@ Shadi:アサーションをオンにすることは、実際には非常に便利です。あなたの内部テストは、あらゆる可能なエラー状態を捕らえることは決してありません。そして、アサーションを持つことは、データ破損に対する保護を提供します。 (MadExceptやEurekaLogのようなエラー報告ツールを使用している場合はさらに便利です) –

関連する問題