C6226
警告 C6226: 意味の異なる整数型の間の暗黙的なキャストです: -1 を HRESULT に割り当てています。 E_FAIL を代わりに使用してください。
この警告は、HRESULT が明示的な値 -1 によって代入または初期化されることを示します。 この警告は、多くの場合、整数と HRESULT 型が不適切に使用された場合に発生します。 成功を示すには、記号定数 S_OK を使用してください。 失敗を示すには、E_constant で始まる記号定数を使用してください。
詳細については、SUCCEEDED マクロおよび FAILED マクロを参照してください。
使用例
この警告が発生するコード例を次に示します。
#include <windows.h>
VOID f( )
{
HRESULT hr;
LPMALLOC pMalloc;
if (FAILED(CoGetMalloc(1, &pMalloc)))
{
hr = -1;
// code ...
}
else
{
// code ...
}
}
この警告を解決するには、次のコードを使用します。
#include <windows.h>
VOID f( )
{
HRESULT hr;
LPMALLOC pMalloc;
if (FAILED(CoGetMalloc(1, &pMalloc)))
{
hr = E_FAIL;
// code ...
}
else
{
// code ...
}
}
この警告では、SCODE 型は HRESULT と等価です。