解決MSVC編譯報(bào)錯(cuò):“C4996 'xxxx': This function or variable may be unsaf
2023-04-14 20:45 作者:TheWhiteDog9487 | 我要投稿
首先,啥情況下會(huì)出現(xiàn)這個(gè)錯(cuò)誤?
讓我們來(lái)想象一個(gè)場(chǎng)景:
你正在做一個(gè)程序,調(diào)用一個(gè)遠(yuǎn)程的API。為了安全起見(jiàn),API認(rèn)證用的密鑰不能硬編碼于代碼中,于是你決定使用環(huán)境變量?,F(xiàn)在要做的就是從系統(tǒng)中讀取這個(gè)存儲(chǔ)著密鑰的環(huán)境變量。
過(guò)程十分正常。讓我們編譯、鏈接、運(yùn)行。問(wèn)題輕松秒....誒?


這,是個(gè)什么情況?
不多說(shuō),直接上微軟的文檔:

首選方案應(yīng)當(dāng)是使用這些函數(shù)的更安全版本。但是,對(duì)于編程新手(比如我)來(lái)說(shuō),那些更安全的參數(shù)列表一看就暈了,這可不是啥好事。所以就來(lái)看看,臨時(shí)過(guò)渡方案。

這個(gè)方案相對(duì)于其他的優(yōu)點(diǎn)是局部生效(有效范圍只有下一行,一行而已),比其他全局解決方案安全很多,不至于(有可能的)因小失大。
來(lái)試用一下:

那當(dāng)然是輕松秒殺。
標(biāo)簽: