2010-11-11 76 views

回答

19

如果你想在项目设置将其打开(或关闭),你必须去:

Configuration Properties -> C/C++ -> Command Line然后在附加选项您可以输入:

/w3####将您的警告设置为3级,从而启用它;或者您可以输入/wd####来禁用警告。

+0

最好的答案!非常感谢!我在MSDN上的任何地方都没有看到它提到的内容 – 2014-03-21 12:01:32

+1

MSDN链接https://msdn.microsoft.com/en-us/library /thxezb7y.aspx – esmirnov 2016-02-26 13:42:24

+0

其实不行wi th VStudio 2015.将它添加到Synergy的每个单个项目中,但仍然出现构建错误“请启用它”。对于所有配置使用附加参数**/w34005 **。 – Slesa 2016-06-21 09:33:28

21
#pragma warning(default:4265) 

看起来这样会将警告设置为默认设置(将被禁用),但事实并非如此。它打开它。

http://msdn.microsoft.com/en-us/library/2c8f766e%28VS.80%29.aspx

你也可以这样做:

#pragma warning(X:4265) 
// where X is the warning level(1,2,3 or 4) that you want this warning to be generated at 
+1

+1。是的,单词*默认*表示*默认警告级别*,而不是*默认状态*。感谢您指出这一点,我自己没有找到它。 – sharptooth 2010-11-11 06:57:23

+0

我正在寻找一个编译器标志来做到这一点,而不是代码更改,因为然后警告没有定义项目范围,但它似乎这是实现结果的唯一方法:( – 0xC0DEFACE 2010-11-18 00:56:09

+3

这不会工作,如果_default **示例:** 警告级别设置为3(/ W3),但是警告[C4245]((警告级别))设置为3 http://msdn.microsoft.com/en-us/library/e9s7thk1.aspx)的默认级别为4.使用'#pragma警告(默认:4245)'不会启用它,但'#pragma警告(3 :4245)'does。(this just bit me) – 2014-09-02 11:56:14

1

为了让马特乌斯布兰德的评论关于#pragma warning更为明显:

如果你用警戒线低于3编译,你必须使用此语法:

#pragma warning (<warning level>: 4265) 

只有当你与3级编译或更高版本,你可以警告4265做

#pragma warning (default: 4265) 

,因为default意味着3级(见MSDN) 。

documentation for #pragma warning写着:

warning-specifier含义

1, 2, 3, 4应用给定级别到指定的警告(S)。这也会打开一个默认关闭的指定警告。

default将警告行为重置为其默认值。这也会打开一个默认关闭的指定警告。该警告将以默认的,记录的级别生成。