“如果你觉得一件事奇怪,那是因为你对这件事理解的不深刻,事物的本质都是简单的个体。”
-------------------
前阵子写了个程序,大致是:C++写了一个dll,其中的返回值是bool型,C#接收dll的返回值,进行判断,执行下一步。
C++:
bool Test(***)
{
bool bl = false;
。。。。
return bl;
}
C#:
void xxxxxx()
{
bool bl = false;
while(!bl)
{
bl = Test(***);
}
}
异常:
Test 函数没返回 true的条件下,While 循环就结束了!!!!!!!!!!
原因:
C++ bool 与C#bool 长度不同,C++ bool 一个字节,C# bool 是4个字节,导致异常。
解决法一:bool 改为 char
解决法二:C++ bool 改为 BOOL