问题描述
- 这个警告怎么消除?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))
时间: 2024-08-30 01:47:29