* VMR9Allocator 作成 [#w36ec523]
Platform SDK ( [[download:http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en]] ) にある VMR9Allocator というサンプルコード利用に関するメモ。

*** どこにある? [#adef9caa]

ここ。

(InstallDir)\Samples\Multimedia\DirectShow\VMR9\VMR9Allocator

*** コンパイルしてみる [#w1e68ab7]

makefile があるので、VS.NET ツールのコマンドプロンプトで、

 C:\> cd (InstallDir)\Samples\Multimedia\DirectShow\VMR9\VMR9Allocator
 C:\> (InstallDir)\Samples\Multimedia\DirectShow\VMR9\VMR9Allocator nmake

としてメイクしちゃって良いかも。


ここはソリューションとしてつくりたいので、プロジェクト新規作成。

「空のプロジェクト」を作って、そこにサンプルのソースファイル

 *.cpp
 *.h
 *.rc

を全部追加。


プロジェクトのプロパティで、追加のインクルードディレクトリに、

 ..\inc
 ..\..\BaseClasses

を追加。

あと、最新の PlatformSDK の Include ディレクトリ(.h がある所)も追加しておく。

とりあえず次のファイルをインクルード。

#include <objbase.h>
//#include <comutil.h>
//#include <comdef.h>
//#include <windows.h>
//#include <windowsx.h>


BaseClasses の strmbasd.lib を作成する。

BaseClasses ディレクトリの下に dsw があれば、それを開いてビルド。
makefile があれば、nmake でメイク。

VS.NET ツールのコマンドプロンプトで、

 C:\> cd (InstallDir)\Samples\Multimedia\DirectShow\BaseClasses
 C:\(InstallDir)\Samples\Multimedia\DirectShow\BaseClasses\> nmake

nmake の場合は、Debug というディレクトリを作って、
その中に出来上がった lib をコピーしておく。

*** リンク(ビルド)してみる [#me74481e]

リンカの設定で、追加の依存ファイルに次のファイルを追加する。

 d3d9.lib
 d3dx9.lib
 winmm.lib
 odbc32.lib
 odbccp32.lib
 ..\..\BaseClasses\Debug\strmbasd.lib

※commctrl.h をインクルードする場合は Comctl32.lib も追加。&br;
※というか、インクルードするものに応じて lib も追加。&br;

プリプロセッサの設定に、次の define を追加。

 #define	_WINDOWS
 #define	_WIN32_WINNT=0x400
 //#define _WIN32_DCOM

2番目と3番目は同じ意味かも(なので3番目はいらないかも)。

※CoInitializeEx()を呼び出しているので、上記スイッチが必要っぽい。&br;
※プロジェクトの設定で "_WINDOWS;_WIN32_WINNT=0x400" と入力すればOK。&br;


ここまでで、えいやっとビルド実行。

多分 LNK2001(外部参照が未解決)というエラーが出るので、
Allocator.h の #pragma once の下あたりに次のコードを追加。

 #pragma comment(lib, "uuid")
 #pragma comment(lib, "dxguid")
 #pragma comment(lib, "strmiids")
 #pragma comment(lib, "amstrmid")
 #pragma comment(lib, "quartz")
 #pragma comment(lib, "msacm32")
 #pragma comment(lib, "winmm")
 #pragma comment(lib, "olepro32")

※amstrmid だけで良いかも。

これでビルド。これで多分通る。


以上。
-----
[[MLEXP. Wiki]]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS