無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
yasya

無題

#1

投稿記事 by yasya » 17年前

こんばんは。
質問なんですか、今、ゲームを作るのに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:無題

#2

投稿記事 by たかぎ » 17年前

警告の抑止方法は、警告メッセージの中で記述されています。

yasya

Re:無題

#3

投稿記事 by yasya » 17年前

上の質問で書いた、

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クラス」と検索したら出てきます。

Mist

Re:無題

#4

投稿記事 by Mist » 17年前

> 非難を抑制するために、_CRT_SECURE_NO_WARNINGSを使ってください。

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

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

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

yasya

Re:無題

#5

投稿記事 by yasya » 17年前

ありがとうございます。
おかげで、解決しました^^

閉鎖

“C言語何でも質問掲示板” へ戻る