我在C ++中用carchive编写的东西用C#读取。这是c ++代码
CString str= "string value";
BOOL firstBool=false;
BOOL secondBool= True;
Bool thirdBool= true;
CMemFile file(DataBlob->GetData(), dLength);
CArchive ar(&file, CArchive::load);
ar << str<<firstBool<<secondBool<<thirdBool;
以下是我在C#中的阅读方式
var br = new BinaryReader(new MemoryStream(file));
var strCSharp= br.ReadString();
var firstBoolCSharp= br.readBoolean();
var secondBoolCSharp= br.readBoolean();
var thirdBoolCSharp= br.readBoolean();
问题:我无法在c#中读取第一,第二和第三个布尔值。可能是什么问题?
答案 0 :(得分:0)
最后我解决了。
C ++将布尔值写为整数&#34; 0&#34;或&#34; 1&#34;。因此,在C#的阅读方面,C#:bool result= binaryReader.ReadInteger()>0;
应该查明它是真还是假。
这解决了我的问题。