Aracılığıyla paylaş


C6226

C6226 Uyarı: anlam farklı tamsayı türleri arasındaki örtülü dönüþtürme: hresult -1 atama.E_FAIL yerine kullanmayı düşünün.

Bu uyarıyı belirten bir HRESULT atanan veya bir açık -1 değeri ile başlatıldı.Bu uyarı tamsayı yanlışlıkla karışıklığı tarafından sık sık neden olur ve HRESULT türleri.Sembolik sabit sayısını başarılı olunduğunu göstermek için S_OK kullanılmalıdır.Hata göstermek için E_constant ile başlayan sembolik sabitler kullanılmalıdır.

Daha fazla bilgi için bkz: başarılı ve başarısız makrolar.

Örnek

Aşağıdaki kod, bu uyarı oluşturur:

#include <windows.h>

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

Bu uyarı düzeltmek için şu kodu kullanın:

#include <windows.h>

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

Bu uyarı için SCODE türü için eşdeğer HRESULT.