次の方法で共有


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 と等価です。