亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

fopen不建議使用的警告

fopen不建議使用的警告

青春有我 2019-12-26 09:18:46
在Visual Studio 2005 C ++編譯器上,當我的代碼使用fopen和此類調用時,出現以下警告。1>foo.cpp(5) : warning C4996: 'fopen' was declared deprecated1>        c:\program files\microsoft visual studio 8\vc\include\stdio.h(234) : see declaration of 'fopen'1>        Message: 'This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'我該如何預防?
查看完整描述

3 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

看起來Microsoft已經棄用了許多使用緩沖區來提高代碼安全性的調用。但是,他們提供的解決方案不是便攜式的。無論如何,如果您對使用其調用的安全版本(例如fopen_s)不感興趣,則需要在包含的頭文件之前放置_CRT_SECURE_NO_DEPRECATE的定義。例如:


#define _CRT_SECURE_NO_DEPRECATE

#include <stdio.h>

也可以將預處理器指令添加到您的項目設置中,以對項目下的所有文件生效。為此,將_CRT_SECURE_NO_DEPRECATE添加到項目屬性->配置屬性-> C / C ++->預處理程序->預處理程序定義。


查看完整回答
反對 回復 2019-12-26
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

好吧,您可以添加:


#pragma warning (disable : 4996)

在使用fopen之前,但是您是否考慮過按照警告提示使用fopen_s?它返回一個錯誤代碼,允許您檢查函數調用的結果。


僅禁用不推薦使用的功能警告的問題在于,Microsoft可能會在更高版本的CRT中刪除有問題的功能,從而破壞您的代碼(如注釋中所述,在這種情況下,使用fopen不會發生這種情況,因為它是C&C ++ ISO標準)。


查看完整回答
反對 回復 2019-12-26
  • 3 回答
  • 0 關注
  • 1319 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號