0

Marshal 类不包含ReadBool方法。如果我的 c++ 结构包含bool字段,那么我应该如何阅读它?我试过这样做:(bool) Marshal.ReadInt32(intPointer, offset)但不允许将 int32 转换为 bool。

4

1 回答 1

2

sizeof(bool)在 C++中是实现定义的,因此最好将结构中的字段定义为已知大小的整数(例如,int32_tBOOL)。然后习惯上使用0表示false0不表示true

// C++
intPointer->int32_t_field = bool_value ? 1 : 0;
// C#
bool result = Marshal.ReadInt32(intPointer, offset) != 0;
于 2013-10-05T05:39:24.903 回答