C++ MSVC&x2B+;如何将某物输出到;“产出”-编译期间的窗口
有时我看到某些项目在编译过程中会向输出写入一些内容 如何在MSVC中实现这一点++C++ MSVC&x2B+;如何将某物输出到;“产出”-编译期间的窗口,c++,visual-c++,C++,Visual C++,有时我看到某些项目在编译过程中会向输出写入一些内容 如何在MSVC中实现这一点++ 谢谢 您希望在源代码中包含以下内容: #pragma message("Hello World") 使用#pragma消息,例如 #define MESSAGE(t) message(__FILE__ "(" STRINGXXX(__LINE__) ") : " t) #define STRINGXXX(x) STRINGYYY(x) #define STRINGYYY(x) #x 那么如果你把 #pragm
谢谢 您希望在源代码中包含以下内容:
#pragma message("Hello World")
使用#pragma消息
,例如
#define MESSAGE(t) message(__FILE__ "(" STRINGXXX(__LINE__) ") : " t)
#define STRINGXXX(x) STRINGYYY(x)
#define STRINGYYY(x) #x
那么如果你把
#pragma MESSAGE("TODO: testing")
它将显示为可单击的消息,就像正常的编译器消息一样在预处理某个源文件时,您可以在其中一个源文件中使用它来输出字符串
此外,当执行自定义、预构建或后构建步骤时,“description”字段将回显到标准输出。正如Timo Geusch所说的那样:
#pragma message
指令用于此目的
作为模板元编程的一个奇特的副作用,还可以将编译器用作计算器:)
模板结构消息;
模板结构Fac{
静态常数int v=i*Fac::v;
};
模板结构Fac{static const int v=1;};
消息m;
将导致输出消息
Line 10: error: aggregate 'Message<3628800> m' has incomplete type and cannot be defined
第10行:错误:聚合“消息m”的类型不完整,无法定义
为什么STRINGXXX和STRINGYYY不是一个宏?行是一个数字,需要转换成字符串。您可以使用另一个宏,以避免字符串“LINE”到处都是。您也可以使用crtdefs.h中定义的_CRT_STRINGIZE,因此您只需要定义宏消息
Line 10: error: aggregate 'Message<3628800> m' has incomplete type and cannot be defined