C# 如何阅读c语言中的卡奇夫布尔语 我在C++中写了一些东西,用C++来读。这里是C++代码< /p> 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中的第一个、第二个和第三个布尔值。可能是什么问题?我终于解决了 C++将布尔值写入为整数0或1。因此,在C的读取端,它应该是C:bool result=binaryReader.ReadInteger>0;看看是真是假C# 如何阅读c语言中的卡奇夫布尔语 我在C++中写了一些东西,用C++来读。这里是C++代码< /p> 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#,c++,.net,c#-4.0,visual-c++,C#,C++,.net,C# 4.0,Visual C++,问题:我无法读取c中的第一个、第二个和第三个布尔值。可能是什么问题?我终于解决了 C++将布尔值写入为整数0或1。因此,在C的读取端,它应该是C:bool result=binaryReader.ReadInteger>0;看看是真是假 这解决了我的问题。不是直接的答案,但是我会写一个快速的C++ C++ CLL DLL,用MFC来读取CARCHIVEF,然后切换到.NET类。我不知道CLI,你能指点我继续在@ CrasmSTR方式中的其他方向吗?这将公开读取文件的方法,然后您必须将DLL的函数
<>这解决了我的问题。不是直接的答案,但是我会写一个快速的C++ C++ CLL DLL,用MFC来读取CARCHIVEF,然后切换到.NET类。我不知道CLI,你能指点我继续在@ CrasmSTR方式中的其他方向吗?这将公开读取文件的方法,然后您必须将DLL的函数导入到C代码中,您就完成了:DllImport doc:您不能使用ReadString,它仅在字符串由BinaryWriter写入时才起作用。您必须先读取字符串长度,这是火箭科学,然后读取字符串中的字符。使用AfxReadStringLength中的代码来获得正确的结果。如果您只想用C来实现,您可能需要查看该文件并确保读取的类型正确,即BOOL不是BOOL,readBoolean可能无法工作。
var br = new BinaryReader(new MemoryStream(file));
var strCSharp= br.ReadString();
var firstBoolCSharp= br.readBoolean();
var secondBoolCSharp= br.readBoolean();
var thirdBoolCSharp= br.readBoolean();