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.