Compartilhar via


C6215

Aviso C6215: Converter entre tipos inteiros semanticamente diferentes: Digite um valor booliano para HRESULT

Este aviso indica que um valor booliano está sendo convertido para um HRESULT. Tipos booliano indicam êxito por um valor diferente de zero, enquanto o sucesso (S_OK) na HRESULT é indicado por um valor de 0. Converter um valor booliano digite um HRESULT e, em seguida, usá-lo em uma expressão de teste produzirá um resultado incorreto.

Este aviso freqüentemente ocorre quando um valor booliano é usado sistema autônomo um argumento para SUCCEEDED ou FAILED macro, que converte explicitamente seus argumentos para um HRESULT.

Exemplo

O código a seguir gera este aviso:

#include <windows.h>
BOOL IsEqual(REFGUID, REFGUID);

void f( REFGUID riid1, REFGUID riid2 )
{
  if (SUCCEEDED( IsEqual( riid1, riid2 ) )) //warning 6215
  {
    // success code ...
  }
  else
  {
    // failure code ...
  }
}

Em geral, a SUCCEEDED ou FAILED macros só devem ser aplicadas a HRESULT.

Para corrigir esse aviso, use o seguinte código:

#include <windows.h>
BOOL IsEqual(REFGUID, REFGUID);

void f( REFGUID riid1, REFGUID riid2 )
{
  if (IsEqual( riid1, riid2 ) == TRUE) 
  {
    // code for riid1 == riid2
  }
  else
  {
    // code for riid1 != riid2
  }
}

Consulte também

Outros recursos

BEM-SUCEDIDA

FALHA