【问题标题】:go to source with custom messages during compile?在编译期间使用自定义消息访问源代码?
【发布时间】:2011-01-06 19:09:55
【问题描述】:

在 Visual Studio 中,我可以在源代码中包含以下宏,并在构建过程中打印出消息。然后我可以双击构建消息窗口中的消息并转到源代码行。

#define _QUOTE(x) # x
#define QUOTE(x) _QUOTE(x)
#define __FILE__LINE__ __FILE__ "(" QUOTE(__LINE__) ") : "
#pragma message ( __FILE__LINE__ "Notify user of something in code" )

是否可以在 Builder C++ 中做同样的事情?

我认为不是,因为在 Builder C++ 的构建消息窗口中似乎有更多信息允许“查看源代码”选项或双击命令起作用。

C++ Builder XE。

我在这个问题中包含了 Delphi 标签,因为很多 Delphi 用户也使用 Builder C++。

【问题讨论】:

  • 如果您对我的回答感到满意,可以接受吗? (否则就错误/可改进的原因提供反馈会很好。)

标签: macros c++builder c++builder-xe


【解决方案1】:

在 C++ Builder 中等效的是 #warning 指令。行:

#warning Test warning message here

在“消息”窗格中显示以下内容:

这就像任何其他编译器消息一样,双击它会将您带到代码行。

__FILE____LINE__ 宏不会在您使用 #warning 定义的消息内展开 - 它会获取文本并完全按照所写的方式将其吐出。但是,您不需要使用它们,因为发出的消息无论如何都包含文件和行号。

如果你想写出一个错误信息(因为 Delphi 允许你 - $MESSAGE 有一个级别,从内存,提示,警告或错误)你可以使用 #error。它的工作原理与#warning 相同,并在该行停止编译,就像任何其他错误编译一样,所以

#error This is an error message

给予

我正在使用C++ Builder 2010,但我有把握这些指令适用于许多版本。

(顺便说一句,将 C++ Builder 问题标记为“delphi”通常很好,因为关于 IDE 或 VCL 的许多问题将由两个社区同样回答。我一直这样做。这可能不是其中之一问题,因为 Delphi 人不太可能知道特定的 C++ Builder 编译器指令。单独标记“c++-builder”就可以了。)

【讨论】:

    【解决方案2】:

    在 Delphi 中,您可以包含消息指令。例如:

    {$MESSAGE WARN 'To be or not to be'}
    

    这将在构建消息中输出警告。该构建消息与任何其他编译器错误/警告/提示一样可单击,单击它将带您到源代码中 {$MESSAGE ...} 指令的位置。

    我不知道,因为我不使用 C++ builder,但我认为 C++ Builder 支持类似的技术...

    【讨论】:

    • #pragma warn 打开或关闭 C++ Builder 的警告。 #pragma message 显示消息,但它们不可点击
    • 这是很重要的一点,因为 C++-Builder 项目也可能包含 Delphi Units。我认为你应该添加一个关于它的词。我将替换最后一句以使问题成为主题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多