これは、GUIDが重要な構造タイプであるため、GUIDで== /!=を使用すると正しい結果が得られない可能性があるためです。
C ++としてコンパイルすると、MSDNのIsEqualCLSIDguiddef.h
を使用して== /!=を実装します。
あなたの場合、問題は、DDKヘッダーが== /!=GUIDのC++演算子のオーバーロードを実装できないことです。guiddef.h
DDKヘッダーを含める前に含まれているため、これが発生するように見えます。どうやらguiddef.h
、DDKは== /!=演算子の実装方法に同意していないため、DDKは警告を発行します。
だから私の推測では、あなたが本当にする必要があるのは、インクルードの順序を再検討することだけだと思います。また、VS 2012が手元にないため確認できませんが、この警告自体が「新しい」唯一のものであり、プログラムの実際の動作がVS2008から変更されていない可能性があります。VS2008は同じことを行った可能性がありますが、プログラマーに警告する警告を発行できませんでした。その場合、古いコンパイラで動作した場合は、おそらく新しいコンパイラでも動作するはずです。