在COM服务器函数中传递int参数的bool值

时间:2013-05-10 19:07:58

标签: c++ matlab com

我有一个带有int参数的COM服务器函数。当我在Matlab中调用该函数并传入“true”作为参数时,C ++会将传入的“true”值计算为-1,以获取我的int参数(我正在逐步执行我的代码)。

当我传入“false”时,它评估为0就好了。

我这样做是因为我过去只允许此参数使用true或false值,但是现在我接受0-4的输入,所以我保持输入0和1的逻辑相同,以便向后兼容。

我只是不明白为什么“真实”值的评估结果为-1!

1 个答案:

答案 0 :(得分:2)

http://msdn.microsoft.com/en-us/library/t2t3725f.aspx开始:布尔类型编组的默认格式是UnmanagedType.VariantBool,它是

  

2字节整数值,其中值-1表示真和0   表示错误