2010-11-11 75 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將警告行爲重置爲其默認值。這也會打開一個默認關閉的指定警告。該警告將以默認的,記錄的級別生成。