C6219
C6219 Uyarı: anlam farklı tamsayı türleri arasındaki örtülü dönüþtürme: 1 ya da doğru hresult karşılaştırma.Kullanmayı başarılı veya başarısız makro yerine
Bu uyarıyı belirten bir HRESULT açık bir ile olmayan karşılaştırıldığını-HRESULT bir (1) değeri.Çünkü yanlış sonuçlara neden olasıdır tipik başarı değeri HRESULT (S_OK) 0; bir Boolean türüne karşılaştırma örtülü olarak onu false değerine dönüştürür.
Örnek
Bu uyarı için aşağıdaki kod üretir CoGetMalloc döndüren bir HRESULT, hangi then karşılaştırması TRUE:
#include <windows.h>
void f( )
{
HRESULT hr;
LPMALLOC pMalloc;
hr = CoGetMalloc(1, &pMalloc);
if (hr == TRUE)
{
// success code ...
}
else
{
// failure code
}
}
Çoğu zaman, yanlışlıkla sınama koduna göre bu uyarıyı neden bir HRESULT karşı bir Boole değeri.Kullanmak genellikle en iyi SUCCEEDED veya FAILED makrolar değerini test etmek için bir HRESULT.Bu uyarı düzeltmek için şu kodu kullanın:
#include <windows.h>
void f( )
{
HRESULT hr;
LPMALLOC pMalloc;
hr = CoGetMalloc(1, &pMalloc);
if (SUCCEEDED(hr))
{
// success code ...
}
else
{
// failure code
}
}
Bu uyarı için SCODE türü için eşdeğer HRESULT.