编译器警告(等级 3,关闭)C4165

HRESULT”正在转换为“bool”;是否确认要这样操作?

if 语句中使用 HRESULT 时,除非将该变量显式测试为 HRESULT,否则 HRESULT 将转换为 bool

默认情况下,警告 C4165 处于关闭状态。 有关详细信息,请参阅默认关闭的编译器警告

示例

以下示例生成 C4165:

// C4165.cpp
// compile with: /W3
#include <windows.h>
#pragma warning(3:4165)

extern HRESULT hr;
int main() {
   if (hr) {
   // try either of the following ...
   // if (FAILED(hr)) { // C4165 expected
   // if (hr != S_OK) {
   }
}