出现在错误列表中的 Visual C++ 编译器故意警告?

问题描述 投票:0回答:2

如何在 Visual C++ 中有意创建编译器警告(在 #error 模型中,除非作为警告),该警告将显示在错误列表中并具有正确的文件和行号?

GCC 和其他编译器提供 #warning,但 MSVC 编译器不提供。

http://support.microsoft.com/kb/155196的“解决方案”不会在 Visual Studio 错误列表中进行解析。

c++ visual-studio compiler-warnings pragma
2个回答
11
投票
只需将其添加到您的公共包含文件(例如,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 编译器警告完全相同。


1
投票
这是对你的问题的一个愚蠢的回答,但通常,如果我需要添加有意的警告,我会输入类似的内容:

#pragma asdfkljasdlfjasklfjklasjdfklj

发出包含行号和所有信息的

Unknown Pragma

 警告。

© www.soinside.com 2019 - 2024. All rights reserved.