C6219
تحذير C6219: فريق العمل الضمني بين مختلف دلالياً عدد صحيح أنواع: مقارنة HRESULT إلى 1 أو صواب. يمكنك استخدام نجحت أو فشل الماكرو بدلاً من ذلك
Th هو التحذير يشير إلى أن HRESULTهو يتم مقارنتها مع واضحة، غير- HRESULTالقيمة واحد (1). Th هو هو احتمال أن يؤدي إلى نتائج غير صحيحة لأن القيمة نجاح النموذجية HRESULT(S_OK) هو 0; comparing من نوع منطقي سوف ضمنياً تحويله إلى خطأ.
مثال
تنشئ التعليمة البرمجية التالية في هذا التحذير لأن CoGetMallocبإرجاع HRESULT، التي ثم يتم مقارنة TRUE:
#include <windows.h>
void f( )
{
HRESULT hr;
LPMALLOC pMalloc;
hr = CoGetMalloc(1, &pMalloc);
if (hr == TRUE)
{
// success code ...
}
else
{
// failure code
}
}
معظم الوقت، th هو تحذير هو السبب mهوtakenly التعليمات البرمجية اختبار HRESULTمقابل قيمة منطقية. هو أفضل بشكل عام للاستخدام في SUCCEEDEDأو FAILEDوحدات الماكرو لاختبار القيمة HRESULT. إلى تصحيح هذا التحذير، استخدم تعليمات برمجية التالية:
#include <windows.h>
void f( )
{
HRESULT hr;
LPMALLOC pMalloc;
hr = CoGetMalloc(1, &pMalloc);
if (SUCCEEDED(hr))
{
// success code ...
}
else
{
// failure code
}
}
لهذا التحذير، SCODEنوع هو المكافئ إلى HRESULT.