这个警告怎么消除?warning C4800: “BOOL”

warning C4800: “BOOL”: 将值强制为布尔值“true”或“false”(性能警告)

不明白,这句为什么总是出警告?后面的0和前面的(bRet = GetMessage(&msg, NULL, 0, 0)) 强制转换为bool还是不行,这个警告应该怎么消除?

while((bRet = GetMessage(&msg, NULL, 0, 0)) != 0)//这行报的警告!!
    {
        if (msg.message == WM_TIMER)
        {
            count++;
            cout<<"WM_TIMER in work thread count="<<timerid<<endl;
            if (count>4)
            {break;
            }
        }
        else
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

谢谢,原来把bRet定义成bool了,改成了BOOL就好了,看来微软的函数返回的都是BOOL型的,以前竟然没注意过。

你不用0,用FALSE代替0试试。

你可以将 bRet 的定义定义为 bool,而不是 BOOL。
然后,bRet = GetMessage(&msg, NULL, 0, 0)) 试试修改为 bRet = (bool)GetMessage(&msg, NULL, 0, 0))