WindowsSDK+DirectShow+VisualStudio2008x環境構築

  • このエントリーをはてなブックマークに追加

VisualStudio2005(?)あたりからDirectShow環境はPlatformSDKからWindowsSDKに移行されたようです。VisualStudio2008 Express EditionとStandard Editionともに環境構築したので備忘録としてここに記載しておきます。

2011/3/22更新
本記事の元サイトがリンク切れとなってしまっていたので、修正します。OSはWindowsXP SP3、Windows SDK+DirectShow環境構築しました。

DirectShowの環境構築

DirectShowとDirectXのダウンロード

Windows SDK for Windows Server 2008 and .NET Framework 3.5をダウンロード&インストール
DirectX環境は「DirectXディベロッパー センター」のページから「DirectX SDK (June 2010)」をダウンロード&インストール

環境変数の設定

「すべてのプログラム」-「マイコンピュータ」-「プロパティ」-「詳細設定」-「環境変数」を開き、システム環境変数に以下を追加します。

  • 変数名:WindowsSdkDir
  • 変数値:「C:\Program Files\Microsoft SDKs\Windows\v6.1」

VisualStudioの設定

VisualStudio2008を開き、「ツール」-「オプション」-「プロジェクトおよびソリューション」-「VC++ ディレクトリ」にて以下設定を追加します。

  • 「インクルードファイル」
    $(WindowsSdkDir)\include
    $(WindowsSdkDir)\Samples\Multimedia\DirectShow\Common
  • 「実行可能ファイル」
    $(WindowsSdkDir)\bin
  • 「ライブラリファイル」
    $(WindowsSdkDir)\lib

「C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses」のbaseclasses.slnを開きバッチビルド

「C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses」

配下の各フォルダにstrmbasd.libが作成されるので、

「C:\Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses」

にコピーしておきます。

以上でDirectShowの環境構築は終わりです。

DirectShowを使ったプロジェクト

VisualStudio2008で「新規プロジェクト」を作成する際の設定を記載します。

VisualStudioの設定

「プロジェクト」-「プロパティ」-「構成プロパティ」を開き以下追記します。

  • 「C/C++」-「全般」-「追加のインクルードディレクトリ」
    “$(DXSDK_DIR)\Include\x86\”
    “$(WindowsSdkDir)\Samples\Multimedia\DirectShow\BaseClasses”
  • 「リンカ」-「全般」-「追加のライブラリディレクトリ」
    “$(DXSDK_DIR)\Lib\x86\;”
    “$(WindowsSdkDir)\Samples\Multimedia\DirectShow\BaseClasses”
  • 「リンカ」-「入力」-「追加の依存ファイル」
    dxerr.lib dxguid.lib d3dx9d.lib d3dx10d.lib d3d9.lib winmm.lib strmiids.lib strmbasd.lib

qedit.hをインクルードする場合は、以下追記する必要があるようです。

  • #define __IDxtCompositor_INTERFACE_DEFINED__
    #define __IDxtAlphaSetter_INTERFACE_DEFINED__
    #define __IDxtJpeg_INTERFACE_DEFINED__
    #define __IDxtKey_INTERFACE_DEFINED__
    #include <qedit.h>

エラー対応

「C:\Program Files\Microsoft SDKs\Windows\v6.1\include\qedit.h(498) : fatal error C1083: include ファイルを開けません。’dxtrans.h’: No such file or directory」
// 注:最新SDKではDirectShowの仕様変更対応の為、qedit.hに以下の編集を行わ なければビルドできない。
// 498行目はライン全体のコメントアウト、その他はIDXEffect基底クラスから の派生を定義しない為のライン途中からのコメントアウト
// qedit.h 498: //#include “dxtrans.h”
// qedit.h 837: IDxtCompositor //: public IDXEffect
// qedit.h 1151: IDxtAlphaSetter //: public IDXEffect
// qedit.h 1345: IDxtJpeg //: public IDXEffect
// qedit.h 1735: IDxtKey //: public IDXEffect
解決方法の参照元はこちら

私の環境ではVC2008 ExpressEdition / VC2008 StanderdEditionともに動作確認できました。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメント

  1. 謎のおっさん より:

    ほんとですね・・・
    ウィキペディアが古いのですね。
    お邪魔しました~

  2. cova より:

    私もまだまだ勉強中です。VS2008になってからはDirectShowの環境構築は幾分楽になっています。

コメントを残す