如何在c#中阅读CArchive布尔值

时间:2015-04-30 18:00:53

标签: c# c++ .net c#-4.0 visual-c++

我在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#中读取第一,第二和第三个布尔值。可能是什么问题?

1 个答案:

答案 0 :(得分:0)

最后我解决了。

C ++将布尔值写为整数&#34; 0&#34;或&#34; 1&#34;。因此,在C#的阅读方面,C#:bool result= binaryReader.ReadInteger()>0;应该查明它是真还是假。

这解决了我的问题。