snprintfを使っていてgccでは普通にビルド出来てたプログラムをVisualStudio 2010でビルドしたら snprintf 関数が定義されていないってエラーになりました。[E:coldsweats02]
「あ〜、ヘッダファイルのinclude忘れか」
と思いきや、vectorコンテナを使ってるからstdio.hもincludeされてるなぁ。
うん、明示的にincludeしても変わらん。
標準関数なのになぜ〜[E:sweat01]と思って stdio.h を覗いてみると…[E:wobbly]
なんかsnprintfが無いっぽい。
そうなんですなぁ。理由はなぜだか知らんけど、VisualStudioについている標準ライブラリではsnprintfはサポートしていないみたいです。(セキュリティの関係でいくつかの関数が無くなったとは聞いた事があるのやけど、snprintfやからなぁ…理由がわからん)
似たような名前の関数が色々あるのやけど、とりあえずこういう時は処理系依存の関数の定番
_snprintf
を使う事にして解決。
実際には共通ヘッダファイルで
#define snprintf _snprintf
としましたダ。
ふぅ…[E:sweat02]