我正在将Visual Studio解决方案从2005版移植到2010版。
其中一个项目是使用ifstream的原生C ++项目。
转换过程完成了,但是当我尝试构建本机项目时,编译器说“_Read_s不是ifstream的成员”。
_Read_s发生了什么?
有些编译器更改会使方法无法访问吗?
这是visual studio 2005正确构建的代码:
ifstream binfile(pathFileToRead, ios::in | ios::binary | ios::beg);
while (!binfile.eof())
{
binfile._Read_s(fileBuffer, CACHE_SIZE, CACHE_SIZE);
//Do something with fileBuffer
}
答案 0 :(得分:2)
看起来非标准basic_istream::_Read_s()
仅存在于VS 2005和VS 2008中。
您可能只需将其更改为使用标准basic_istream::read()
函数:
binfile.read(fileBuffer, CACHE_SIZE);