警告 C6215
意味的に異なる整数型間のキャスト: ブール型から HRESULT へのキャスト
この警告は、ブール型 が HRESULT
にキャストされることを示します。 ブール型は 0 以外の値で成功を示します。HRESULT
の成功値 (S_OK
) は値 0 によって示されます。 ブール型を HRESULT
にキャストしてからテスト式で使用すると、不適切な結果が生じます。
解説
この警告は、ブール型が SUCCEEDED
の引数または FAILED
マクロとして使用された場合によく発生します。このブール型は、HRESULT
の引数を明示的にキャストします。
コード分析名: CAST_BOOL_TO_HRESULT
例
この警告が発生するコード例を次に示します。
#include <windows.h>
BOOL IsEqual(REFGUID, REFGUID);
void f( REFGUID riid1, REFGUID riid2 )
{
if (SUCCEEDED( IsEqual( riid1, riid2 ) )) //warning C6215
{
// 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 マクロ」をご覧ください
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示