Share via


C6215

경고 C6215: 의미 체계가 다른 정수 형식 간의 캐스팅입니다. 부울 형식에서 HRESULT로 캐스팅했습니다.

이 경고는 부울이 HRESULT로 캐스팅되고 있음을 나타냅니다. 부울 형식은 0이 아닌 값으로 성공을 나타내는 반면 HRESULT에서는 0 값으로 성공(S_OK)을 나타냅니다. 부울 형식을 HRESULT로 캐스팅한 다음 테스트 식에 사용하면 잘못된 결과가 나옵니다.

이 경고는 SUCCEEDED 또는 FAILED 매크로에 대한 인수로 부울을 사용할 경우에 자주 발생합니다. 이들 매크로는 인수를 명시적으로 HRESULT로 캐스팅합니다.

예제

다음 코드에서는 이 경고를 발생시킵니다.

#include <windows.h>
BOOL IsEqual(REFGUID, REFGUID);

void f( REFGUID riid1, REFGUID riid2 )
{
  if (SUCCEEDED( IsEqual( riid1, riid2 ) )) //warning 6215
  {
    // success code ...
  }
  else
  {
    // failure code ...
  }
}

일반적으로 SUCCEEDED 또는 FAILED 매크로는 HRESULT에만 적용해야 합니다.

이 경고를 해결하려면 다음 코드를 사용합니다.

#include <windows.h>
BOOL IsEqual(REFGUID, REFGUID);

void f( REFGUID riid1, REFGUID riid2 )
{
  if (IsEqual( riid1, riid2 ) == TRUE) 
  {
    // code for riid1 == riid2
  }
  else
  {
    // code for riid1 != riid2
  }
}

자세한 내용은 SUCCEEDED 매크로FAILED 매크로를 참조하십시오.