Compartilhar via


C6230

Aviso C6230: conversão implícita entre tipos inteiros semanticamente diferentes: usando o HRESULT em um contexto booliano

Este aviso indica que um hardware HRESULT está sendo usado em um contexto, sistema autônomo if demonstrativo, onde um resultado booliano é esperado. Isso provavelmente produzir resultados incorretos.Por exemplo, o valor sucesso típico para HRESULT (S_OK) for falsa quando ele é testado sistema autônomo um valor booliano.

Exemplo

O código a seguir gera este aviso:

#include <windows.h>

VOID f( )
{
  LPMALLOC pMalloc;
  HRESULT hr = CoGetMalloc(1, &pMalloc);
  
  if (hr)
  {
    
    // code ...
  }
  else
  {
    // code ...
  }
}

Na maioria das situações, a SUCCEEDED ou FAILED macro deve ser usada para testar o valor das HRESULT. Para corrigir esse aviso, use o seguinte código:

#include <windows.h>

VOID f( )
{
  LPMALLOC pMalloc;
  HRESULT hr = CoGetMalloc(1, &pMalloc);
  
  if (SUCCEEDED(hr))
  {
    
    // code ...
  }
  else
  {
    // code ...
  }
}

Para esse aviso, o SCODE tipo é equivalente a HRESULT.

Consulte também

Outros recursos

BEM-SUCEDIDA

FALHA