Aracılığıyla paylaş


C6225

uyarı C6225: Anlamsal olarak farklı tamsayı türleri arasında örtülü atama: 1 ya da DOĞRU'yu HRESULT için atama.Bunun yerine S_Yanlış kullanmayı düşünün

Bu uyarı HRESULT 'ın 1 değeriyle açık olarak atandığını veya başlatıldığını gösterir.Boolean türü sıfır olmayan bir değeri başarılı gösterir; başarılı (S_OK) içindeki HRESULT 0 değeri ile belirtilir.Bu uyarı sıklıkla Boolean'ın ve HRESULT türlerinin kazara karışıklığına neden olur.Sembolik sabitin başarılı olduğunu göstermek için S_OK kullanılmalıdır.

Örnek

Aşağıdaki kodda, HRESULT ataması bu uyarıya neden olur:

#include <windows.h>

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

Bu uyarıyı düzeltmek için aşağıdaki kodu kullanın:

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

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

Başarısızlığı göstermek için, E_FAIL ya da başka bir sabit kullanılması gerekir.

Daha fazla bilgi için aşağıdaki konulardan birisine bakabilirsiniz:

BAŞARILI

BAŞARISIZ