DirectShowのBaseClassesがVC2005でビルドできない件

……問題があったのですが、MSDN Forumsにwinnt.h errors?というスレッドがありました。

  • DirectX 9 を Visual Studio 2005 Beta 2 で使ってみました。VC 6.0 で動いてたプログラムをコンパイルすると(略)というエラーが出ました。なぜでしょうか。
  • kwsk
  • インクルードしてるのは d3dx9.h だけです。
  • よく見かけるエラーですね。エラーの原因は Platform SDK のバージョンが環境にあってないというものです。
  • POINTER_64 を __ptr64 にすると動きますよ。
  • winnt.h の中で "basestd.h" をインクルードしているところを、明示的に "C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\BaseTsd.h" としたらエラーが出なくなりました。

とかなんとかだそうです。自分の環境では、VCのインクルードパスの設定で、DirectXSDKよりもPlatform SDKの優先度を上げることで解決できました。