* 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