Delphi编译器警告:不推荐使用单元'ExceptionLog'

时间:2013-09-23 08:28:29

标签: delphi delphi-7 delphi-xe4

我在Delphi应用程序中使用EurekaLog 7 Professional。从Delphi 7迁移到Delphi XE4时,我收到以下编译器警告。

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

我应该如何摆脱这种警告?

1 个答案:

答案 0 :(得分:5)

这些问题的答案始终是您需要删除对指定单位的引用,并将其替换为对其替换的引用。

在这种情况下,首次点击网络搜索您的错误消息的EurekaLog KB article会提供所有详细信息:

  

<强>问题:

     

编译my时,我得到“单位'ExceptionLog'已被弃用”错误   应用。但是,当我尝试移除这个单元时 - 我得到了很多   “未声明的识别者”错误。

     

<强>原因:

     

ExceptionLog单位是EurekaLog 6的单位。它包含在EurekaLog中   7导入旧的EurekaLog 6应用程序。但是,它被标记为   “已弃用”表示您的应用程序使用旧代码(即   来自EurekaLog的代码6)。

     

EurekaLog 7使用ExceptionLog7单位(和其他单位 -   见下文)。

     

<强>解决方案:

     

请注意,此消息不是错误。你的申请将是   编译并运行。它将正常运作。这条消息是一个   警告。通知您项目使用旧代码的警告。

     

在您的应用程序中使用ExceptionLog单元是完全可以的。如果   你有旧的EurekaLog项目,然后你升级EurekaLog   版本7并导入您的项目 - 它将被导入   将使用兼容模式和ExceptionLog单元。现在你可以   重新编译你的应用程序,它应该像以前一样工作。几乎没有   代码更改是必需的。

     

如果您不希望看到有关单位被弃用的警告 - 您   可以在项目选项中关闭这些通知或使用$ WARN   UNIT_DEPRECATED ON / OFF指令可选择性地转换这些警告   部分代码的开/关信息。

     

但是,如果要升级代码,则必须禁用   兼容模式并用引用替换ExceptionLog引用   到ExceptionLog7单元。此外,当你开始一个新项目 - 然后你   默认会使用新单位(因为还没有写过   码)。

     

请注意,EurekaLog 7是EurekaLog 6的主要重新设计.EurekaLog 6   几乎包含一个单元(ExceptionLog)中的所有内容   EurekaLog 7将代码分成几个单元(例如ECallStack,   EModules,ESysInfo,EExceptionManager,EDebugInfo,ESend,EDialog,   等等。)。这就是为什么你可能需要另外包括其他单位   你的使用条款。如果你得到“未声明的识别器”错误 - 那么   某些单位缺少用途。您可以在\ Source中运行文件搜索   包含你的* .pas文件的EurekaLog安装文件夹   错过识别器(这也适用于没有完整版本的版本   源代码,因为它们包含标题)。或者,你可以学习   EurekaLog 7中的变化。