MSVC WindowsSDK - eiichiromomma/CVMLAB GitHub Wiki
MSVC) WindowsSDK
(PlatformSDK->WindowsSDKらしい?
XPも対応
Windows SDK for VISTAとかなっているのだが、インストール画面ではXP SP2以降としっかり表示されているので、こっちが最新のSDKらしい。 が、現在PlatformSDKで困ってないのでわざわざ移行する必要があるかは未検討。
PlatformSDKからの移行
拾ってきてインストール。 構成はこんな感じ。
VisualC++ 2005 EEがあるのでコンパイラは外す。
VisualC++ 2005 EEの設定
インクルードファイルのディレクトリ、ライブラリファイルのディレクトリの両方でPlatformSDKに関する箇所を削除。
インクルードファイルのディレクトリには
C:\Program Files\Microsoft SDKs\Windows\v6.0\Include
C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\winui\tsfcompart
を追加。
ライブラリファイルのディレクトリには
C:\Program Files\Microsoft SDKs\Windows\v6.0\Lib
を追加。
DirectShow
ビルド
ビルドが簡単になった。
C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses
へ移動してbaseclasses.slnを開く。 プロジェクトはRelease_MBCSとDebug_MBCS(マルチバイト対応らしい)を使う。
その後の設定
インクルードファイルのディレクトリに
C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses
を追加。 ライブラリファイルのディレクトリに
C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses\Debug_MBCS
C:\Program Files\Microsoft SDKs\Windows\v6.0\Samples\Multimedia\DirectShow\BaseClasses\Release_MBCS
を追加。
サンプルのビルド
コケる場合は、
未参照の関数名 lib
でGoogle等で検索するとライブラリ名が分かるので、それを追加する。
glaux関連
吸収されたようなので従来のソースでglaux.hの部分はコメントアウト。glaux.libの参照は削除。
OpenCV
glaux.hのインクルードはコメントアウトし、ライブラリglaux.libの参照は削除。
ライブラリが不足するエラーが多発するので関数名で検索する。 面倒ならuser32.lib ole32.lib oleaut32.lib advapi32.lib gdi32.lib comdlg32.libあたりを突っ込んでおけば大抵通る。
CBaseInputPin、CTransInPlaceFilterが無い
Debugの時だけエラーが発生する。Classの継承で型が一致していないのが原因。 それぞれpObjectNameの宣言をconstにする
ProxyTrans.h
ProxyTransform (const TCHAR *tszName, LPUNKNOWN punk, HRESULT *phr);
ProxyTrans.cpp
ProxyTransform::ProxyTransform(const TCHAR *tszName,LPUNKNOWN punk,HRESULT *phr) :
SyncFilter.h
cvSyncInputPin(const TCHAR *pObjectName,