1

Delphi アプリケーションで EurekaLog 7 Professional を使用しています。Delphi 7 から Delphi XE4 への移行中に、次のコンパイラ警告が表示されます。

[dcc32 Warning] myproject.dpr(4): W1006 Unit 'ExceptionLog' is deprecated

この警告を取り除くにはどうすればよいですか?

4

1 に答える 1

6

このような質問に対する答えは、常に、名前付きユニットへの参照を削除し、その置換への参照に置き換える必要があるということです。

この場合、エラー メッセージの 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 の変更を調べることもできます。

于 2013-09-23T08:37:39.347 に答える