2009-11-12 16 views
1

我厭倦了在編譯期間看警告 - 來自MS包含文件的警告。什麼是抑制來自MS的警告的最佳解決方案包括(mmsystem.h中的C4201)

「C:\ Program Files文件\微軟的SDK \的Windows \ v6.0A \ \包括MMSYSTEM.H(1840):警告C4201:使用非標準擴展:無名結構/聯合」

我看到this thread那建議更改標題本身(但是然後我的每個隊友都必須這樣做,我們必須在構建服務器上執行此操作 - 更不用說這是一個輝煌的HACK)

有更好的方法嗎?我不想在全球範圍內關閉它 - 只是爲了壓制它的某些文件或目錄。

有什麼建議嗎?

編輯 由於一些愚蠢的原因,我不認爲我可以在包含文件中設置警告級別。謝謝 - 這就是訣竅。

回答

10

喜歡的東西

#pragma warning(push, disable: 4201) 
#include <mmsystem.h> 
#pragma warning(pop) 
+4

(+1)不知道你能做到的推動下,禁用一條線:) – 2009-11-12 16:43:42

+2

當第三處理第三方軟件WRAP。 – 2009-11-12 16:45:53

+4

在VS2012中執行'#pragma warning(push,disable:4201)'導致'警告C4083:預計'常量';發現標識符'disable',所以我建議每個'#pragma warning'都要附加一條指令。 – bcrist 2013-09-22 19:34:14

4

如何在VC++使用#pragma警告延期?

http://msdn.microsoft.com/en-us/library/2c8f766e(VS.80).aspx

#pragma warning (push, 2) // Temporarily setting warning level 2 
#include <mmsystem.h> 
#pragma warning (pop)  // Restore back 

你也可以嘗試..

#pragma warning (disable: 4201) 
#include <mmsystem.h> 
#pragma warning (default) 
+0

我不想降低警告級別 - 我只是想壓制一個特定的級別,但我設法弄清楚了。 – Tim 2009-11-12 17:04:59

+0

但是,僅適用於系統標題。降低此類系統標題的警告級別是可以的,您不想修改源代碼。 – minjang 2009-11-12 17:09:35

相關問題