ページ 11

無題

Posted: 2008年9月14日(日) 22:14
by yasya
こんばんは。
質問なんですか、今、ゲームを作るのにCStringクラスというのを使ってます。
しかし、これをデバックすると、

warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(366) : 'sprintf' の宣言を確認してください。

などの警告が10個近く出てしまいます。
まあ、警告なのでプログラムは通るのですが、この警告を消すことはできないでしょうか?

Re:無題

Posted: 2008年9月14日(日) 22:29
by たかぎ
警告の抑止方法は、警告メッセージの中で記述されています。

Re:無題

Posted: 2008年9月15日(月) 12:13
by yasya
上の質問で書いた、

This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

の部分を訳すと、

この機能または変数は、安全でないかもしれません。その代わりにsprintf_sを使うことを考えてください。非難を抑制するために、_CRT_SECURE_NO_WARNINGSを使ってください。詳細はオンラインヘルプを見てください。

ということになりました。
それで、書いてる通りにsprintfをsprintf_sに変えてんですけど・・・。
今度は、

error C2664: 'int sprintf_s(char *,size_t,const char *,...)' : 2 番目の引数を 'const char [3]' から 'size_t' に変換できません。(新しい機能 ; ヘルプを参照)
この変換が可能なコンテキストはありません。

というエラーが出るようになってしまいました^^;
sprintfをsprintf_sに変えるだけでは駄目なのでしょうか。どうしたらエラーを消せるのか教えて下さい。
ちなみに、コードは「C++ CStringクラス」と検索したら出てきます。

Re:無題

Posted: 2008年9月15日(月) 12:53
by Mist
> 非難を抑制するために、_CRT_SECURE_NO_WARNINGSを使ってください。

sprintfを使ってワーニングを出さないようにする方法はここに書いてる。
やり方は「VC++ 警告抑制」でググればたくさんヒットします。

> error C2664: 'int sprintf_s(char *,size_t,const char *,...)' : 2 番目の引数を 'const char [3]' から 'size_t' に変換できません。(新しい機能 ; ヘルプを参照)

ヘルプ見てください。
書いてます。

Re:無題

Posted: 2008年9月15日(月) 14:16
by yasya
ありがとうございます。
おかげで、解決しました^^