在使用vc 2005 的開發者會遇到這樣的問題,在使用std命名空間庫函式的時候,
往往會出現類似於下面的警告:
warning c4996: strcpy was declared deprecated
出現這樣的警告,是因為vc2005中認為crt中的一組函式如果使用不當,可能會產生
諸如記憶體洩露、緩衝區溢位、非法訪問等安全問題。這些函式如:strcpy、strcat等。
對於這些問題,vc2005建議使用這些函式的更高階的安全版本,即在這些函式名後面加了
乙個_s的函式。這些安全版本函式使用起來更有效,也便於識別,如:strcpy_s,calloc_s等。
當然,如果執意使用老版本、非安全版本函式,可以使用_crt_secure_no_deprecate
標記來忽略這些警告問題。辦法是在編譯選項 c/c++ | preprocessor | preprocessor definitions
中,增加_crt_secure_no_deprecate標記即可。
補充:然而,本以為上面的說法是件漂亮的法子,不想用後不爽。遂用舊法:
#pragma warning(disable:4996) //全部關掉
#pragma warning(once:4996) //僅顯示乙個
依然是舊法好用。
關閉VS警告 warning C4996
warning c4996 vsnprintf this function or variable may be unsafe.warning c4996 strcpy was declared deprecated 出現這樣的警告,是因為vc2005之後的版本中認為crt中的一組函式如果使用不當,...
vs開發筆記 C4996
warning c4996 vsnprintf this function or variable may be unsafe.warning c4996 strcpy was declared deprecated 出現這樣的警告,是因為vc2005之後的版本中認為crt中的一組函式如果使用不當,...
VS系列報C4996的錯誤
vs編譯器報 c4996的問題 1.在檔案開頭加定義 1 在檔案的最開頭加乙個 pragma warning disable 4996 2 或者加乙個巨集定義 define crt secure no warnings2.取消掉安全開發生命週期 sdl 檢查 1 建專案的時候勾選取消 2 屬性 c ...