c# PINVOKE传递bool类型的注意事项

自己c++代码传递的明明是false,到了c#却变成了true。虽然明知错误发生在参数传递的过程中,却是很难找到原因。

c语言中的bool类型是整数(4个字节),c++中是一个字节,pinvoke 中 bool 默认是4个字节。所以c++代码调用c#函数时,传递bool类型就会出现错误。

方法也很简单,在c++中声明函数时,用int来代替bool。c#代码不用修改,代码就能正常运行了。