伪IT男
分类:
2007-09-29 08:30:04
最近使用 VC8 編譯一個 VC7 的 Project ,結果出現如下的 Warning
Warning 1 warning C4996: 'strcpy' was declared deprecated d:\20060922\lib\stunt_client_dll_win32\sample.cpp 67
查了 MSDN [1]才發現VC8 對於 CRT 加入許多安全性的函數,將內文節錄如下:
已加入數種函式的安全版本,這些函式會以較佳的方式處理錯誤,並強制執行較嚴格的緩衝控制,以避免發生常見的安全性缺失。新的安全版本可以利用 _s 後置字元加以識別。
現有較不安全的許多函式版本已經被取代,若要停用取代警告,請定義 _CRT_SECURE_NO_DEPRECATE。如需詳細資訊,請參閱 Security-Enhanced Versions of CRT Functions。
所以,依據上述說明,如果你要讓其他編譯器也能夠編譯該程式,可以定義_CRT_SECURE_NO_DEPRECATE 來抑制警告訊息,或是改用 VC8 新提供的 strcpy_s 函數。
參考資料:
[1] ms-help://MS.MSDNQTR.v80.cht/MS.MSDN.v80/MS.VisualStudio.v80.cht/dv_vcedit/html/1a82576b-7f39-48f5-98f3-4679bb9df36c.htm
[2]