warning C4996

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

warning C4996

#1

投稿記事 by » 16年前

漢字弾幕についてですが、
龍神録の漢字弾幕プログラムを作成以降
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.

'sprintf' の宣言を確認してください。

warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

'fopen' の宣言を確認してください。

という警告が沢山表示されます。
この警告を消すにはどうしたらいいでしょうか?

DVDM

Re:warning C4996

#2

投稿記事 by DVDM » 16年前

>>☆さん
以下の方法で警告を消すことができます。
・#pragma warning (disable : 4996)
・#define _CRT_SECURE_NO_WARNINGS
どちらを書いて頂いても構いません。
記述場所はプログラムの先頭にでも書いておくといいと思います。

また、sprintf()やfopen()の代わりに、sprintf_s()やfopen_sを使うことでも警告は消えます。

Re:warning C4996

#3

投稿記事 by » 16年前

返答ありがとうございます。
sprintf()については、おかげで消えました。
でもfopen_sについては、置き換えると

error C2660: 'fopen_s' : 関数に 2 個の引数を指定できません。

というエラーが出てしまいます・・
なんとかならないでしょうか?

通り

Re:warning C4996

#4

投稿記事 by 通り » 16年前

ググるなりして関数の仕様を確認しようよ

み~

Re:warning C4996

#5

投稿記事 by み~ » 16年前

>通り
・・・

たいちう

Re:warning C4996

#6

投稿記事 by たいちう » 16年前

>DVDMさん
fopen_sは2個の引数ないんじゃ?

DVDM

Re:warning C4996

#7

投稿記事 by DVDM » 16年前

>>たいちうさん
置き換えるだけではエラーが出るので、使うと書いたのですが私の書き方が悪かったみたいですね;
申し訳ございませんでした。
FILE* fp;
errno_t error;
if( (error = fopen_s( &fp, "ファイル名", "モード" )) != NULL )
{
    /* ファイルオープンに失敗したとき */
}
MSDNライブラリより:http://msdn.microsoft.com/ja-jp/library/z5hh6ee9(VS.80).aspx

こんな風に書いておけば宜しいですか?

閉鎖

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