Xp64ボックスで、amcapサンプルを実行するためにDirectShowベースクラスライブラリを構築することができました。2010年6月のMicrosoftDirectXSDKと、すべてのC /C++コンパイラを備えたMicrosoftWindowsSDK for Windows 7(7.1)をインストールしました。
まず、DirectShowベースクラスをコンパイルする必要があります。
通常の古いcmd.exeを開きます
cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses
VCBuild.exeがインストールされていないというエラーが発生した場合は、slnとさまざまなプロジェクトファイル(例:C / C ++ vcproj)が古いため、次のコマンドでそれらを適切にアップグレードし、古い古いvcprojファイルを新しいくだらないファイルに変更します。 vcxprojファイルVCUpgradeは私のマシンにあります:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\vcupgrade.exe
paramsのさまざまな組み合わせをvcupgradeで試した後でも、msbuildを使用してslnをビルドすることはできません(ドキュメントは危険にさらされます)。そのため、プロジェクトを直接コンパイルする必要がありました。とにかく、SLNという名前のバッチファイルvarを残しました。本当に革命的な
VCUpgrade -nologo -overwrite baseclasses.vcproj
これにより、さまざまな構成を簡単にコンパイルできます
set SLN="baseclasses.vcxproj"
基本クラスのリリースビルドはstrmbase.lib
を作成し、 デバッグ はstrmbasd.libを作成することに注意してください。amcapにはリリースビルド
が必要です。amcapのビルドはデバッグできます。
A)リリースWin32をコンパイルします(== x86)
MsSdkのSetEnv.Cmdを使用すると、 vsvars32.bat quagmireのほか、エプリプシーを誘発するバッチのWebに依存しながら、実際に機能することから1つまたは2つの致命的な欠陥になるように特別に設計された800万の異なるcmdシェルを回避できます。それらを行うためのファイル(ねえ!多分2つは関連しています!?)
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /release /x86 /xp
64ビットバージョンのMSBuild(おそらくターゲット?)を使用して運がなかったのですが、x86MSBuildは問題なく動作しています。
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" %SLN% /p:Configuration=Release /p:Platform=Win32
B)リリースX64をコンパイルします
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /release /x64 /2003
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" %SLN% /p:Configuration=Release /p:Platform=X64
次に、両方のバージョンのamcapをコンパイルできるようになりました
通常の古いcmd.exeを開きます
cd C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\capture\amcap
VCvcprojをvcxprojにアップグレードします
VCUpgrade -nologo -overwrite amcap.vcproj
set SLN="amcap.vcxproj"
A)デバッグWin32をコンパイルします(== x86)
コンパイラ、lib、include、...パスを設定してからコンパイルします
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /debug /x86 /xp
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" %SLN% /p:Configuration=Debug /p:Platform=Win32
B)デバッグX64をコンパイルします
"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /debug /x64 /2003
"C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" %SLN% /p:Configuration=Debug /p:Platform=X64
SysInternals * Process Explorer *を使用して、各exeが実際にそれぞれ32ビットと64ビットであることを確認しました。私が一緒に仕事をしたほとんどの開発者がProcessExplorerについてさえ知らないのは、説明のつかないようです。私は一日中そのことに取り組んでいます。そして、はい、それは彼女が言ったことです。