Delphi アプリケーションで EurekaLog 7 Professional を使用しています。Delphi 7 から Delphi XE4 への移行中に、次のコンパイラ警告が表示されます。
[dcc32 Warning] myproject.dpr(4): W1006 Unit 'ExceptionLog' is deprecated
この警告を取り除くにはどうすればよいですか?
Delphi アプリケーションで EurekaLog 7 Professional を使用しています。Delphi 7 から Delphi XE4 への移行中に、次のコンパイラ警告が表示されます。
[dcc32 Warning] myproject.dpr(4): W1006 Unit 'ExceptionLog' is deprecated
この警告を取り除くにはどうすればよいですか?
このような質問に対する答えは、常に、名前付きユニットへの参照を削除し、その置換への参照に置き換える必要があるということです。
この場合、エラー メッセージの Web 検索で最初にヒットしたEurekaLog KB 記事にすべての詳細が記載されています。
問題:
アプリケーションをコンパイルすると、「Unit 'ExceptionLog' is deprecated」というエラーが表示されます。ただし、このユニットを削除しようとすると、多くの「宣言されていない識別子」エラーが発生します。
理由:
ExceptionLog ユニットは EurekaLog 6 のユニットです。古い EurekaLog 6 アプリケーションをインポートするために EurekaLog 7 に含まれています。ただし、アプリケーションが古いコード (つまり、EurekaLog 6 のコード) を使用していることを示すために、「非推奨」とマークされました。
EurekaLog 7 は、代わりに ExceptionLog7 ユニットを使用します (および追加のユニット - 以下を参照)。
解決:
このメッセージはエラーではありません。アプリケーションがコンパイルされて実行されます。正常に機能します。このメッセージは警告です。プロジェクトが古いコードを使用していることを通知する警告。
アプリケーションで ExceptionLog ユニットを使用してもまったく問題ありません。古い EurekaLog プロジェクトがあり、EurekaLog をバージョン 7 にアップグレードしてプロジェクトをインポートすると、互換モードでインポートされ、ExceptionLog ユニットが使用されます。アプリケーションを再コンパイルすると、以前と同じように動作するはずです。コードの変更はほとんど必要ありません。
非推奨のユニットに関する警告を表示したくない場合は、プロジェクト オプションでこれらの通知をオフにするか、$WARN UNIT_DEPRECATED ON/OFF ディレクティブを使用して、コードの一部に対してこれらの警告メッセージを選択的にオン/オフにすることができます。
ただし、コードをアップグレードする場合は、互換性モードを無効にし、ExceptionLog 参照を ExceptionLog7 ユニットへの参照に置き換える必要があります。また、新しいプロジェクトを開始すると、デフォルトで新しい単位が使用されます (まだコードが記述されていないため)。
EurekaLog 7 は、EurekaLog 6 の大幅な再設計であることに注意してください。EurekaLog 6 には、ほとんどすべてが 1 つのユニット (ExceptionLog) に含まれていますが、EurekaLog 7 はコードをいくつかのユニット (ECallStack、EModules、ESysInfo、EExceptionManager、EDebugInfo、ESend、 Eダイアログなど)。そのため、uses 句に他のユニットを追加する必要がある場合があります。「宣言されていない識別子」エラーが発生した場合は、一部のユニットが使用されていません。EurekaLog インストールの \Source フォルダーで、見逃した識別子を含む *.pas ファイルのファイル検索を実行できます (これは、ヘッダーが含まれているため、完全なソース コードのないエディションでも機能します)。または、EurekaLog 7 の変更を調べることもできます。