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

1 delphi delphi-7 delphi-xe4

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

[dcc32 Warning] myproject.dpr(4): W1006 Unit 'ExceptionLog' is deprecated
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*nan 6

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

在这种情况下,EurekaLog知识库文章是Web搜索错误消息的第一个文章,它提供了所有详细信息:

问题:

编译我的应用程序时,我得到"单位'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等).这就是为什么您可能需要在您的使用条款中另外包含其他单位.如果您收到"未声明的识别器"错误 - 则某些单元在使用中丢失.您可以在EurekaLog安装的\ Source文件夹中运行文件搜索,以查找包含您遗漏标识符的*.pas文件(这也适用于没有完整源代码的版本,因为它们包含标题).或者,您可以学习EurekaLog 7中的更改.