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