如何在 Visual C++ 中故意创建一个编译器警告(在 #error 模型中,作为警告除外),它会以正确的文件和行号显示在错误列表中?
GCC 和其他编译器提供#warning,但 MSVC 编译器不提供。
http://support.microsoft.com/kb/155196 的“解决方案”不在 Visual Studio 错误列表中解析。
最佳答案
只需将此添加到您的通用包含文件(例如,stdafx.h):
#define __STR2__(x) #x
#define __STR1__(x) __STR2__(x)
#define __LOC__ __FILE__ "("__STR1__(__LINE__)") : warning W0000: #pragma VSWARNING: "
#define VSWARNING(x) message(__LOC__ x)
像这样使用:
#pragma VSWARNING("Is this correct?!?!")
编译器会输出:
c:\dir\file.h(11) : warning W0000: #pragma VSWARNING: Is this correct?!?!
错误列表选项卡将在表格中很好地显示警告:
Type Num Description File Line
[Warning] 13 warning W0000: #pragma VSWARNING: Is this correct?!?! file.h 11
完全像普通的 Visual Studio 编译器警告。
关于c++ - 出现在错误列表中的 Visual C++ 的故意编译器警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163017/