...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

VS2005: セキュアなCライブラリ

VS2005ではC標準ライブラリを拡張したセキュアなバージョンの関数を使わないとコンパイラに怒られてしまう.
VSを使うならばMS仕様の関数に変更するか, #ifdef などを用いて関数を使い分けるのが筋というもの.
だが,それらの関数は非標準なので他のライブラリなどが使えなかったり,いろいろと問題も出る.
そこでこの拡張を使いたくないときには以下のように設定する.

プロジェクト>オプション>構成(すべての構成)>構成プロパティ>C/C++コマンドライン>追加のオプション


/D "_CRT_SECURE_NO_DEPRECATE"

なお, boost c++ ライブラリを使っている場合は,さらに定義を追加し,


/D "_SCL_SECURE_NO_DEPRECATE" /D "_CRT_SECURE_NO_DEPRECATE"

上記のようにすればよい.
これで従来のソースをそのままコンパイル/ビルドできるようになる.