对于我遇到的问题,我真的很感激。
我需要在C#中保存二进制文件并用C ++(编辑器/游戏引擎)读取它们。我目前的解决方案已经工作多年了,但现在,由于某种原因,我开始遇到问题。
在C#中,我有以下代码来设置流:
Stream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None);
BinaryWriter writer = new BinaryWriter(stream);
我使用writer.Write(..)编写数据。
在C ++中,我使用以下代码打开一个流:
std::ifstream inStream;
inStream.open(fileName, std::ios::binary);
我读了这样的数据:
int val = -1;
inStream.read((char*) &val, sizeof(int)).
99%的时间一切正常但有时当我读取文件时(在C ++中),流被搞砸了,失败位被设置了。
问题总是发生在导出文件的同一个地方,当发生这种情况时,每次我尝试读取文件时都会发生这种情况。
当我正在读一个int,一个浮点数,一个字符串或其他什么时。它也可以在流中的任何地方发生。
我还在编辑器中构建了一个导入功能,我从来没有在C#中遇到过这个问题。
所以,当我用C ++读取文件时,显然我遗失了一些东西。
我对流等没有任何实际体验,所以我想(并希望)我在设置流时只是遗漏了一些东西。
感谢您的帮助!