我在Delphi应用程序中使用EurekaLog 7 Professional。从Delphi 7迁移到Delphi XE4时,我收到以下编译器警告。
[dcc32 Warning] myproject.dpr(4): W1006 Unit 'ExceptionLog' is deprecated
我应该如何摆脱这种警告?
答案 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中的变化。