こんにちわ。
VC++は、超初心者です。
ビデオキャプチャソフトを作成したいと思っています。
Directshowでサンプルを見ながら、キャプチャはできたのですが、
ユーザーインタフェースが未完成です。
そこで、PCに接続済みのカメラ(キャプチャデバイス)だけをコンボボックスに
表示させ、選択できるようにするにはどうしたらいいのでしょうか?
そして、選択されたカメラからのデータを、ピクチャか他のダイアログボックスに表示
させたいのです・・・
アドバイスお願いします。
デバイスの列挙を行いたければ、
DirectX 8.0 の日本語ヘルプで「CLSID_VideoInputDeviceCategory」
をキーにして「検索」してみてください。
サンプルでは、「dvapp」あたりをベースにしてみれば?
DV_InitControls()でToolBarにコンボボックスを追加で貼り付ければ
いいと思います。
お返事ありがとうございます。
Directshowの日本語ヘルプってあったのですか???
少し難しい言葉がでてきて、混乱状態です。申し訳ありません。
>DV_InitControls()でToolBarにコンボボックスを追加で貼り付ければ
いいと思います
についてがよくわからないのですが・・・
ご解説いただけるでしょうか?
> Directshowの日本語ヘルプってあったのですか???
DirectX 8.0 日本語ドキュメント ( C++ 開発者向け)
(VB用もあります。切れている文字をつなげてください)
http://www.microsoft.com/downloads/release.asp?
ReleaseID=26072&area=search&ordinal=2
この中に、DirectShowのチュートリアル諸々があります。
これがあるので、すごく助かっています。日本語ドキュメントの
充実が普及のかぎですね、やっぱり。(.Net SDKも全部日本語化せい)
> >DV_InitControls()でToolBarにコンボボックスを追加で貼り付ければ
> >いいと思います
> についてがよくわからないのですが・・・
http://www.microsoft.com/japan/msdn/directx/default.asp
から、DirectXのSDKをダウンロードしてください。私が挙げたサンプルは
\samples\multimedia\directshow\capture\dvapp
にあります。
dvapp.cppの中の関数DV_InitControls()の中で、ToolBarに
チェックボックスやテキストを貼り付けているのでここで
コンボボックスを貼り付ければ外見は完成じゃないですか。
HWND cmbbox = CreateWindow(TEXT(COMBOBOX),...);
という感じで。
MFCやSDKについてご存知なければ、もうちょ苦労
していただくことになると思いますが。
ありがとうございます。
MFCやSDKについての知識はまだまだ浅いのですが、マイクロソフトのページとボコノン
教徒さんに教えていただいたもので、できそうです(^^)
初心者に対して、とても親切でわかりやすいお返事をくださり、ありがとうございまし
た。
あの、大変申し訳ないのですが、
サンプルをビルドしてみたところ、
LINK : fatal error LNK1104: ファイル ..\..\baseclasses\debug\strmbasd.lib を開け
ません。
というようなエラーがでました。
strmbasd.libをプロジェクト->設定のリンクに貼り付けてビルドしてもみたのですが、
解決されません。
どうしてでしょうか?
> LINK : fatal error LNK1104:
> ファイル..\..\baseclasses\debug\strmbasd.lib
> を開けません。
「プロジェクト」ー「設定」ー「リンク」ー「インプット」
で strmbasd.lib が相対パスで指定されています。
DirectXのサンプルはライブラリやインクルードで
このような相対パスをよく使うので注意が必要です。
私も苦労しまた。
本当でした!!
インプットを絶対パスで書き直すとエラーがとれました。
ありがとうございます!!
けれど・・・また今度は違うエラーが・・・?
>LINK : fatal error LNK1104: ファイル D:\Microsoft.obj を開けません。
>link.exe の実行エラー
しかし、D:\Microsoft.obj というファイルなんて存在していませんでした。
これは何のためのファイルなのでしょうか?
どこかから、探してダウンロードしなければならないものなのでしょうか?
>LINK : fatal error LNK1104: ファイル D:\Microsoft.obj を開けません。
>link.exe の実行エラー
これらしいです
http://codeguru.earthweb.com/mfc/comments/22874.shtml
http://codeguru.earthweb.com/mfc/comments/37139.shtml
私も始めて知りました。
プロジェクトをコピーせずにオリジナルの位置でビルドすれば
OKみたいですが。
んん・・?
これは、プロジェクト->設定のリンク内の”Microsoft”を”Mixrosoft_SDK”に書き換
えるのではないのですよね?
>プロジェクトをコピーせずにオリジナルの位置でビルドすれば
>OKみたいですが。
とは、どうすることなのでしょうか?
・・・本当にわからなくてすみません。
>プロジェクトをコピーせずにオリジナルの位置でビルドすれば
>OKみたいですが。
SDKのサンプルディレクトリを別の位置にコピーしてBuildしてい
るのですか?
コピーせずに、解凍したサンプルのプロジェクトをそのまま
VCに取り込んでBuildするとどうなりますか?
こんにちは、RAPTです。
> これは、プロジェクト->設定のリンク内の”Microsoft”を”Mixrosoft_SDK”に書き換
> えるのではないのですよね?
これは、エクスプローラ等で、直接、Microsoft SDKというフォルダ名を、
Microsoft_SDKに変更し、VC++のインクルード設定等の Microsoft SDK
もすべてMicrosoft_SDKに変更しなさい、という意味です。
Windows98/VC++6.0std/SDK-may2002/ATL3.0/WTL7.0
こんにちわ。
直接、Microsoft SDKというフォルダ名はなかったので、Microsoft Visual Studioに
アンダーバーを入れてみたり、MicrosoftSDKというファイルを作成して、ライブラリ
を移してビルドしてみました。
今までのエラーはとれたのですが、
LINK : warning LNK4049: ローカル定義のシンボル _sprintf がインポートされました
CDVGraph.obj : error LNK2001: 外部シンボル _CLSID_CaptureGraphBuilder2 は未解決
です
CDVGraph.obj : error LNK2001: 外部シンボル _IID_ICaptureGraphBuilder2 は未解決で
す
CDVGraph.obj : error LNK2001: 外部シンボル _IID_IDVSplitter は未解決です
CDVGraph.obj : error LNK2001: 外部シンボル _IID_IIPDVDec は未解決です
strmbasd.lib(wxdebug.obj) : error LNK2001: 外部シンボル __imp__strrchr は未解決
です
Debug/dvapp.exe : fatal error LNK1120: 外部参照 5 が未解決です。
今度は次のようなエラーが出てきます。
現在、必死でエラー原因を探しています。
日本語へるぷの「DirectShow」-「ファースト ステップ ガイド」-「ビルド環境の設定」
をきちんと読んでください。
> CDVGraph.obj : error LNK2001: 外部シンボル _IID_IDVSplitter は未解決です
strmiids.lib が足りません。
プリプロセッサフラグ DEBUGは追加してありますか? (_DEBUGじゃないよ)
まさか、新規にプロジェクトを作成してビルドしているとか。
もしそうなら、VCの初心者にとってそれはちょっと無謀です。
> strmbasd.lib(wxdebug.obj) : error LNK2001:
> 外部シンボル __imp__strrchr は未解決です
まさか、VCのデフォルトライブラリのSTRMBASD.LIBを引いてきてるんじゃ
ないでしょうね。