使用Visual Studio .NET 2003 C++和wininet.dll文件 上午看到很多C4995 warnings什麼是Win編譯開關關閉#pragma棄用警告?
任何幫助表示讚賞。
謝謝。
使用Visual Studio .NET 2003 C++和wininet.dll文件 上午看到很多C4995 warnings什麼是Win編譯開關關閉#pragma棄用警告?
任何幫助表示讚賞。
謝謝。
您可以使用#pragma warning
是MSDN頁所示:
#pragma warning(disable: 4995)
或者,你可以把警告關閉項目的屬性整個項目(右鍵單擊項目 - >屬性 - > C/C++ - >高級 - >禁用特定警告)。在命令行上,使用/wd4995
可以達到相同的效果。
任何其他解決這些問題的方法都不禁用代碼或設置?謝謝。 – 2010-03-11 01:03:10
@Tommy:編譯器獲取兩個輸入:一組命令行參數和源文件。如果你想告訴它做什麼,你必須在這兩個地方之一這樣做。 – 2010-03-11 01:41:09
除了上述的答案,這是值得提的是,它往往是很好的做法,只在有限的範圍內禁用警告(這一點,如果你把在頭文件這些編譯尤其重要):
#pragma warning (disable : 4121) // alignment of a member was sensitive to packing
#include <third-party-header.h>
#pragma warning (default : 4121) // Restore default handling of warning
另一種方法是使用push/pop機制。
#pragma warning(push)
#pragma warning(disable: 4018) // signed/unsigned mismatch
#pragma warning(disable: 4100) // unreferenced formal parameter
#pragma warning(disable: 4512) // 'class' : assignment operator could not be generated
#pragma warning(disable: 4710) // 'function' : function not inlined
#pragma warning(disable: 4503) // decorated name length exceeded, name was truncated
#include <third-party-header1.h>
#include <third-party-header2.h>
#include <third-party-header3.h>
#include <third-party-header4.h>
#pragma warning(pop)
請注意,您還可以在一個預處理器指令中禁用多個警告:'#pragma warning(disable:4018 4100)'。剛纔已經說過,我真的很喜歡你如何在旁邊放置每個警告的原因。 – 2010-03-11 01:37:55
正在使用strsafe.h需要添加的#define STRSAFE_NO_DEPRECATE http://msdn.microsoft.com/en-:如果你需要禁用第三方頭文件一堆警告這可能是得心應手us/library/ms647466%28VS.85%29.aspx – 2010-03-12 01:33:14