開発覚え書き

ソフトウェアシステムの開発に関わるさまざまなことの覚え書き

Visual C++ 2005でのstrcpy等非推奨 (warning C4996)

2006-01-27 14:18:14 | Weblog
Visual C++ 2005 Express Editionをダウンロード・インストールしてみた。
Visual Studio 6.0 のC++のプロジェクトを変換しビルドしたところ、

warning C4996: 'strcpy' が古い形式として宣言されました。
'This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.'

のような警告がやたらと出るようになった。
これは strcpy, strcat, sprintf のような標準Cの文字列操作関数
の利用が非推奨になり、範囲チェックが入ったより安全な関数
(strcpy_s, strcat_s, sprintf_s など元の関数名に _s をつける)
が推奨になったため。

なお、コンパイラのプリプロセッサオプションで

/D "_CRT_SECURE_NO_DEPRECATE"

のように _CRT_SECURE_NO_DEPRECATE マクロを定義すればこの警告を
出さないようにすることができる。

コメントを投稿