ページ 11

セキュリティの強化された関数の実行環境

Posted: 2014年1月04日(土) 08:50
by dic
お世話になります。

ちょっと気になったことがあったので質問させてください。
Visual C++ 200? 以降 sprint 関数を、セキュリティの強化された sprintf_s などの関数
..._s 関数に書き換えてくれと警告メッセージがでるようになりました。

そして、WindowsXP もそろそろサポート終了ですが、すぐには以降できないと思っています。
そこで、sprintf_s などの関数は、XP 以前の環境でも動くのでしょうか?
たとえば、NT, 2000, などでもセキュリティの強化された関数は動くのでしょうか?
DxLibライブラリを使用していてて、sprintf_s などの関数を使うと動くのかちょっと心配です。
実行環境がないので、試せないのです。よろしくお願いします。

Re: セキュリティの強化された関数の実行環境

Posted: 2014年1月04日(土) 09:17
by softya(ソフト屋)
どちらかと言うとランタイムのサポートの問題ですね。
ランタイムが動くなら、sprint でもsprintf_s でも問題なく動きます。

【補足】
ランタイムが動く環境は、コンパイラのバージョンごとに変わります。
2012以降だとXPまでしかサポートしていないはずです(うろ覚え)。

【補足の補足】
sprintf_sはマイクロソフトの独自拡張のはずなので、gccなどのコンパイラではコンパイルできなくなることを承知しておいて下さい。

Re: セキュリティの強化された関数の実行環境

Posted: 2014年1月05日(日) 06:18
by dic
どちらかと言うとランタイムのサポートの問題ですね。
ランタイムが動くなら、sprint でもsprintf_s でも問題なく動きます。

【補足】
ランタイムが動く環境は、コンパイラのバージョンごとに変わります。
2012以降だとXPまでしかサポートしていないはずです(うろ覚え)。

【補足の補足】
sprintf_sはマイクロソフトの独自拡張のはずなので、gccなどのコンパイラではコンパイルできなくなることを承知しておいて下さい。
はい。ランタイムのサポートの問題なのですね。
gccは、いまのところ視野にいれていませんが、承知しました。