Feeds:
文章
留言

Archive for 九月 22nd, 2006

最近使用 VC8 編譯一個 VC7 的 Project ,結果出現如下的 Warning

Warning 1 warning C4996: ‘strcpy’ was declared deprecated d:20060922libstunt_client_dll_win32sample.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] http://www.microsoft.com/taiwan/msdn/library/2005/Mar-2005/VisCExSecApps.htm

  • Read Full Post »