3

以下のように、4 つのヘッダー ファイルがあり、すべて _wfopen() を使用して txt ファイルからデータを開きます。

FILE* file = _wfopen(L"data.txt",L"r,ccs=utf-8");

VC++ でエラー C4996 が表示されますが、1 つのヘッダー ファイルのみで、他の 3 つのヘッダー ファイルにはまったくエラーがありません。どうすればこれを修正できますか? 更新:私の教授は私にこのコードをくれました.私はそれをコンパイルしました.私はそれを再利用する必要があるので、私は新しいプロジェクトを作成し、彼のコードのすべてを新しいプロジェクトにコピーしました.その後、C4996エラーが発生しました.

4

1 に答える 1

2

Web で浅い検索を行うと、非推奨の関数を使用していることがわかるため、エラー C4996 が発生します。例が示すように、代わりに関数 _wfopen_s を使用する必要があります。

...
// Create an the xml file in text and Unicode encoding mode.
if ((fileHandle = _wfopen( L"_wfopen_test.xml",L"wt+,ccs=UNICODE")) == NULL) // C4996
// Note: _wfopen is deprecated; consider using _wfopen_s instead
{
    wprintf(L"_wfopen failed!\n");
    return(0);
}
...

このエラーが 4 回の呼び出しすべてに対して 1 回だけ指摘されるのは、コンパイラが繰り返しエラーを抑制するためです。

参照: http://msdn.microsoft.com/en-us/library/yeby3zcb.aspx

于 2012-11-25T11:23:13.457 に答える