トップページ > 過去ログ > 記事閲覧
警告 fopen
名前:出来損ないPG 日時: 2008/02/10 12:53

1>c:\users\***\データ\projects\test\test\test.cpp(145) : 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. 1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。 1>c:\users\***\データ\projects\test\test\test.cpp(165) : 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. 1> c:\program files\microsoft visual studio 9.0\vc\include\stdio.h(237) : 'fopen' の宣言を確認してください。 という警告が出るのですけど、どのようにすればよいのでしょうか?

Page: 1 |

Re: 警告 fopen ( No.1 )
名前: 日時:2008/02/10 13:43

まずは警告の意味を理解すること、 自分で調べることから始めてください。 今回の警告は,fopenは古い関数で安全ではないので 新しく追加されたfopen_sを使えという警告で、 実際にはVCの2005以降(未確認)でしか実装されない 為、無視しても問題はありません。 fopen_sを使うなら修正、無視して警告だけを 抑止したい場合は_CRT_SECURE_NO_WARNINGSを プロジェクトの「プリプロセッサ定義」へ追加する かdefineでヘッダの前に定義するなどの方法が あります。 他に警告抑止という意味でなら#pragmaも使えます。 #pragma warning( disable : XXXX ) XXXXにはwarning CYYYY:のYYYYを入れます。 今回の場合なら、 #pragma warning( disable : 4996 ) とか。
Re: 警告 fopen ( No.2 )
名前:キーチック 日時:2008/02/13 02:19

使い方はそれほど難しくないと思います. ヘルプをみればすぐに分かりますが, errno_t型の変数を定義することと,ファイルポインタを戻り値とするのではなく,fopen_sの引数とすることぐらいしか違いません. 例えば,以下のような形です. FILE *fp; errno_t err; if ((err=fopen_s(&fp,FILENAME,"w"))!=0) { printf("ファイルが開けません\n"); return (-1); }
Re: 警告 fopen ( No.3 )
名前:レン・アッシュベル 日時:2014/12/18 16:30

これらの方法を試したのですが直りませんでした

Page: 1 |