加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 有没有办法从包含文件中获取当前单位的名称?

发布时间:2020-12-15 09:48:45 所属栏目:大数据 来源:网络整理
导读:我正在将一些代码从一个框架库移植到另一个框架库,这需要我注释掉大部分代码才能使其编译,然后仔细恢复它们.与此同时,由于所有已注释掉的代码,我收到了大量警告.所以我决定写一个快速包含文件来压制它们: {$MESSAGE WARN 'Warnings suppressed for unported
我正在将一些代码从一个框架库移植到另一个框架库,这需要我注释掉大部分代码才能使其编译,然后仔细恢复它们.与此同时,由于所有已注释掉的代码,我收到了大量警告.所以我决定写一个快速包含文件来压制它们:

{$MESSAGE WARN 'Warnings suppressed for unported unit with commented-out code'}
{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}

我把它包括在给我大量警告的所有单元中,但是现在当我编译时,编译器返回如下消息:

[DCC警告] unfinished.inc(1):W1054对带有注释掉代码的未移植单元的警告被禁止

我想告诉我,警告来自执行包含的单位,而不是包含文件本身.有没有办法做到这一点,或者将单元的名称用于消息,而不是实际将$MESSAGE指令移出include文件并进入我执行此操作的每个单元?

解决方法

这是一个技巧,它使用“未使用的私有方法”的编译器提示包含单元名称的事实,即使在包含文件中声明具有私有方法的类,也会声明该类.

这要求包含文件的include-directive出现在允许声明的单元的一部分中,因此要么在接口部分中的uses子句之后,要么在实现部分的uses子句之后.

interface

uses Foo,Bar,Socks;

{$include Unfinished.inc}

您的包含文件应如下所示:

{$MESSAGE WARN 'Warnings suppressed for unported unit with commented-out code,Unit name see next line'}
type
  TUnit_With_Suppressed_Warnings = class
  private
    procedure UnitWithSuppressedWarnings; virtual; abstract;
  end;

{$WARN NO_RETVAL OFF}
{$WARN USE_BEFORE_DEF OFF}

现在,您将为包含该包含文件的每个单元获取以下两条消息:

[DCC Warning] unfinished.inc(1): W1054 Warnings suppressed for unported unit with commented-out code,Unit name see next line
[DCC Hint] actualunitname.pas(5): The private symbol UnitWithSuppressedWarnings was declared but never used.

请注意,实际单位的名称显示在第二行.

备注:如果编译器提示已关闭,您将看不到第二行.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读