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

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


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

最佳答案

此类问题的答案始终是,您需要删除对命名单元的引用,并将其替换为对其替换的引用。

在这种情况下,EurekaLog KB article是您的错误消息在网络搜索中的第一个匹配项,它提供了所有详细信息:


问题:

编译我时出现“不赞成使用Unit'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中的更改。

关于delphi - Delphi编译器警告:不建议使用“ExceptionLog”单元,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18954780/

10-13 02:57