Sdílet prostřednictvím


C6226

upozornění C6226: implicitní přetypování mezi celé sémanticky různé typy: HRESULT přiřazení -1.Zvažte použití E_FAIL.

Toto upozornění znamená, že HRESULT je přiřazen nebo inicializována s hodnotou explicitní -1.Toto upozornění je často způsobena záměně náhodné celé číslo a HRESULT typy.Označuje úspěch Symbolická konstanta S_OK by měla být použita.Označuje selhání, je třeba používat Symbolické konstanty, počínaje E_constant.

Další informace naleznete proběhlo úspěšně a se nezdařilo makra.

Příklad

Následující kód vygeneruje toto upozornění:

#include <windows.h>

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

Chcete-li opravit toto upozornění, použijte následující kód:

#include <windows.h>

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

Pro toto upozornění SCODE typu je ekvivalentní HRESULT.