在编译期间使用自定义消息转到源代码?

4
在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" )

在C++ Builder中是否也可以做到相同的操作呢?我认为不行,因为在C++ Builder的构建消息窗口中似乎有更多的信息,这些信息使得“查看源代码”选项或双击命令能够正常工作。

C++ Builder XE。

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


如果您对我的回答感到满意,能否请您接受它呢?(否则,提供有关为什么不正确/可改进的反馈将是很好的。) - David
2个回答

3

C++ Builder中的等效指令是#warning。该行代码:

#warning Test warning message here

显示以下内容在“消息”窗格中: 消息窗格中的警告消息 这就像任何其他编译器消息一样,双击它会带你到代码的那一行。
使用 #warning 定义消息时,__FILE__ 和 __LINE__ 宏不会扩展 - 它以文本形式输出。但是,由于发出的消息已经包括文件和行号,所以您不需要使用它们。
如果您想写出错误消息(正如 Delphi 允许您使用 $MESSAGE - 从记忆中,它具有提示、警告或错误级别),则可以使用 #error。它与 #warning 的工作方式相同,并停止编译该行,就像编译任何其他错误一样。
#error This is an error message

提供

在消息窗格中的错误信息

我正在使用C++ Builder 2010,但我相当确定这些指令已经适用于许多版本。

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


0
在Delphi中,您可以包含一个消息指令。例如:
{$MESSAGE WARN 'To be or not to be'}

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

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


#pragma warn 可以在C++ Builder中打开或关闭警告。#pragma message 显示消息,但它们不可点击。 - Gregor Brandt
这是一个重要的观点,因为C++ Builder项目也可能包含Delphi单元。我认为你应该加上一句话来说明这一点。我会替换最后一句话,使问题与主题相关。 - Wolf

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接