Subscribed unsubscribe Subscribe Subscribe

Schi Heil と叫ぶために

hiroakiuno's blog

Geekなページの DirectShowプログラミング で学習を始めるための2009年2月時点の環境構築メモ

単なるインストールメモですが何かの役に立てば。

超特急で DirectShow の雰囲気をつかみたいという要求にドンピシャで答えてくれた 403 Forbidden。骨組みだけを抽出したシンプルなサンプルコードが非常に分かり易くありがたかった。ただ、最初の環境構築が時代とともに多少変わっていて、例えば DirectShow は昔は DirectX をインストールすればよかったのが、2005年から Microsoft Platform SDK に移っており、さらには現在(2009年2月)はその名称が Windows SDK に変わっていたり(でもサンプルコードのコンパイルには DirectX SDK が必要だったり)、知識ゼロから検索だけでなんとかやろうとすると古い情報がひっかかってちょっと混乱する。分かってしまえばたいしたこと無いが、こんな 意見も見かけたので整理してみた。なお以下は Windows XP のマシンを用いた時の手順です。

環境構築手順


まず、DirectShow は現在は Windows SDK に入っている。Windows SDKこちら からインストール可能。これで最初の GraphEditを使う の GraphEdit が使えるようになり、

  • C:\Program Files\Microsoft SDKs\Windows\v6.1\Bin\graphedt.exe

から遊べる。

その次の エラー値の意味を知るDirectX Error Lookup は DirectX SDK に入っているツール。DirectX SDKこちら からインストール可能。DirectX のインストールが終われば

から利用できる。

それ以降の章ではソースをコンパイルすることになるが、それには Visual C++ 2008 Express Edition(無償) が使える。こちら からインストール可能。インストール後、インクルードファイルとライブラリのパスを指定する必要があるが、それに関しては次のページが参考になる。strmiids.lib を追加するのを忘れずに>自分

以上で環境が整ったが、その他些細な注意点としては MPEGファイルを再生する(RenderFile) のコードはそのままコピペだと、MessageBox の第2、3引数のところでコンパイルエラーが出てしまう。よくある文字列の型のエラーだが、

MessageBox(NULL, L"Block Execution",L"Block",MB_OK);

としておけばとりあえずコンパイルが通る。

なお、自前ウィンドウに表示する(IVideoWindow) 以降の章で MFC が必要になる部分があるが、残念ながら無償の Visual C++ 2008 Express Edition には含まれていない。MFC を用いたプログラムのビルドには Visual Studio 2008 Standard Edition(有償) 以上の環境が必要になってしまうのでご注意を。

以上、すばらしいページを環境構築でつまづいて諦める人がいたらもったいないので公開してみました。