エラーメッセージを取り除くには、警告を生成している問題を修正する必要があります。
このコードをコンパイルする場合:
#include "stdafx.h"
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
FILE* p_file = NULL;
std::wstring tempFileName = L"c:\\test.txt";
p_file=_wfopen(tempFileName.c_str(),L"r");
if(!p_file)
{
perror("Open failed.");
return 0;
}
fseek(p_file,0,SEEK_END);
fclose(p_file);
return 0;
}
次の警告が表示されます。
警告C4996:'_wfopen':この関数または変数は安全でない可能性があります。代わりに_wfopen_sの使用を検討してください。非推奨を無効にするには、_CRT_SECURE_NO_WARNINGSを使用します。詳細については、オンラインヘルプを参照してください。
だから、それが言うことを聞いて、次のことをしてください:
#include "stdafx.h"
#include <string>
int _tmain(int argc, _TCHAR* argv[])
{
FILE* p_file = NULL;
std::wstring tempFileName = L"c:\\test.txt";
_wfopen_s(&p_file, tempFileName.c_str(),L"r");
if(!p_file)
{
perror("Open failed.");
return 0;
}
fseek(p_file,0,SEEK_END);
fclose(p_file);
return 0;
}
-> -> ->を入力_CRT_SECURE_NO_WARNINGS
してこの警告をオフにする方法がありますが、これらの関数の代わりに安全な方法を常に使用する必要があります。Project Properties
C/C++
Preprocessor
Preprocessor Definitions
また、fseek
p_fileポインタがであるかどうかを確認する前にNULL
。