我有一个文件,我想获取文件的大小。我只能使用_wfopen
或_wfopen_s
打开文件,因为我的文件路径类型是std::wstring
.
FILE* p_file = NULL;
p_file=_wfopen(tempFileName.c_str(),L"r");
fseek(p_file,0,SEEK_END);
但我收到一个错误
error C2220: warning treated as error - no 'object' file generated
我有一个文件,我想获取文件的大小。我只能使用_wfopen
或_wfopen_s
打开文件,因为我的文件路径类型是std::wstring
.
FILE* p_file = NULL;
p_file=_wfopen(tempFileName.c_str(),L"r");
fseek(p_file,0,SEEK_END);
但我收到一个错误
error C2220: warning treated as error - no 'object' file generated
要摆脱您的错误消息,您需要修复生成警告的问题。
如果编译此代码:
#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
.