概要 製品一覧 サポート FAQ Blog

SDK VC++ サンプルをコンパイルする方法

image

 

Olga Krovyakova著 - 2023 年 10 月 10 日に修正、2019 年 4 月 1 日に作成。

序文:
SolveigMM ビデオ編集 SDK は、 DirectX SDK 9.0 (2000 年 11 月)を使用して開発されましたこのバージョンは Microsoft の Web サイトからダウンロードできなくなりましたので、ここではまだ入手可能なバージョンの使用方法について説明します。

Microsoft は、最新のプラットフォーム SDK (Windows SDK 6.1)最新の DirectX SDK (2009 年 3 月)を使用することを推奨していますが、残念ながら、そこには dxtrans.h などのいくつかの手がかりヘッダーが欠落しているため、簡単には実行できません。

現時点では、Microsoft SDK を使用する 2 つの方法があります。

1. Windows Server 2008® 用 Microsoft Windows SDK  および .NET Framework 3.5 ( v6.1 )   +   DirectX 9.0 SDK アップデート - (2005 年 2 月)
2. DirectX 9.0 SDK アップデート - (2005 年 2 月) + DirectX 9.0 SDK アップデート エクストラ - (2005 年 2 月)


ビデオ編集 SDK を無料でお試しください

image

のために  Microsoft Visual Studio 2008以降 次のように追加の SDK をインストールする必要があります。

Windows Server 2008
® および .NET Framework 3.5 (v6.1) 用 Microsoft Windows SDK 1328.9 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=E6E1C3DF-A74F-4207-8586-711EBE331CDC&displaylang=ja

DirectX 9.0 SDK アップデート (2005 年 2 月) 追加機能 35.6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=ja

DirectShow 基本クラスは、次のキーを使用してコンパイルする必要があります。
C/C++、言語、wchar_t を組み込み型として扱う - いいえ (/Zc:wchar_t-)


Windows SDK をインストールした後、DirectShow 基本クラスをコンパイルして strmbase.lib および strmbasd.lib を取得する必要があります。デフォルトでは、基本クラスは次の場所にあります。

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

基本クラスのライブラリの Unicode バージョンとマルチバイト バージョンを混同しないでください。

VisualStudio IDE のオプションを更新します。次のパスを追加します。  含まれるもの リスト:

1)「 \Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\ 」 - このパスを「インクルード」リストの先頭に置く必要があります。
2)「 \DXSDK\Include 」;

次のパスをライブラリリストに追加します。

1)「 Program Files\Microsoft SDKs\Windows\v6.1\Lib 」;
2)「プログラム ファイル\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug 」;
3)「 Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release 」 - Unicode でコンパイルされた基本クラス ライブラリ。
4)「 Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Debug_MBCS 」;
5) “ Program Files\Microsoft SDKs\Windows\v6.1\Samples\Multimedia\DirectShow\BaseClasses\Release_MBCS ” -マルチバイトでコンパイルされた基本クラス ライブラリ。
6)「 \DXSDK\ ライブラリ」;

image

Microsoft Visual Studio 2005の場合は、次のように追加の SDK をインストールする必要があります。

1. DirectX 9.0 SDK アップデート - (2005 年 2 月) 154.6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyID=77960733-06E9-47BA-914A-844575031B81&displaylang=ja

2. DirectX 9.0 SDK アップデート (2005 年 2 月) 追加 35.6 MB
http://www.microsoft.com/downloads/details.aspx?FamilyId=8AF0AFA9-1383-44B4-BC8B-7D6315212323&displaylang=ja

ヘッダーとライブラリのディレクトリのレイアウトは次のとおりです。

image
image

DirectX 9.0 SDK Update Extra (2 番目のポイント) には、コンパイルする必要があり、DirectX 9.0 SDK Update (1 番目のポイント) の一部のヘッダーに依存する DirectShow Base Classes が含まれています。

BaseClasses ソリューションは次のフォルダーにあります。
"..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\baseclasses.sln"

残念ながら、一部のヘッダーには若干の変更が必要です。そうしないと、VC Studio でコンパイル エラーが発生します。

..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\ctlutil.h

COARefTime(LONG);
演算子=(LONG);

に変更する必要があります

COARefTime(LONG);
// 演算子=(LONG);
COARefTime& 演算子=(LONG);

..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\wxdebug.cpp

静的 g_dwLastRefresh = 0;
に変更する必要があります
静的 DWORD g_dwLastRefresh = 0;

" ..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\winutil.cpp "
for ( UINT カウント = 0;カウント < 結果;Count++) {

に変更する必要があります

UINT カウント = 0;
for ( カウント = 0;カウント < 結果;Count++) {

" ..\Extras\DirectShow\Samples\C++\DirectShow\BaseClasses\outputq.cpp "

for (iDone = 0;
iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);

に変更する必要があります

長い iDone = 0;
for (iDone = 0;
iDone < nSamples || (m_nBatched != 0 && m_bSendAnyway);

DirectShow 基本クラスは、次のキーを使用してコンパイルする必要があります。
C/C++、言語、wchar_t を組み込み型として扱う - いいえ (/Zc:wchar_t-)

ビデオ編集 SDK を無料でお試しください

著者について

image Olga Krovyakova は、2010 年から Solveig Multimedia のテクニカル サポート マネージャーを務めています。

彼女は、ビデオ スプリッター、HyperCam、WMP トリマー プラグイン、AVI Trimmer+、TriMP4 などの会社製品に関する多くのテキストおよびビデオ ガイドラインの著者です。

彼女は毎日プログラムを使って作業しているため、プログラムがどのように機能するかをよく知っています。 ご質問がある場合は、 support@solveigmm.com経由で Olga までお問い合わせください。彼女は喜んでお手伝いします!