關閉Visual Studio編譯器警告C4996
阿新 • • 發佈:2018-12-16
使用VS2005以及後續版本編譯strcpy、sprintf等函式時,會出現如下C4996警告。
warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 5> c:\program files (x86)\microsoft visual studio 10.0\vc\include\string.h(105) : 參見“strcpy”的宣告
warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
5> c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(371) : 參見“sprintf”的宣告
對於此類警告,正規的做法是移植時使用諸如strcpy_s、sprintf_s函式替代strcpy、sprintf函式,消除警告。
然而,對於某些特殊的程式碼使用strcpy_s函式替代可能會有困難。或許,我們想暫時排除編譯器的騷擾(眼不見為淨嘛^.^),開展更為急迫的工作。因此,下面的方法可能會有用武之地。
方法一
程式碼中新增#pragma warning預處理指令,修改編譯器對C4996警告訊息的行為 。
關閉全部C4996警告。
#pragma warning(disable:4996) //關閉全部
只顯示一次警告。
#pragma warning(once:4996) //只顯示一次警告
方法二
開啟工程配置屬性頁後,點選配置屬性>C/C++>前處理器,增加預處理定義_CRT_SECURE_NO_WARNINGS。