自動的にデバイス情報取得→コンボボックスへ – プログラミング – Home

自動的にデバイス情報取得→コンボボック...
 
通知
すべてクリア

自動的にデバイス情報取得→コンボボックスへ

固定ページ 1 / 2

あさひ
 あさひ
(@あさひ)
ゲスト
結合: 22年前
投稿: 9
Topic starter  

こんにちわ。
VC++は、超初心者です。

ビデオキャプチャソフトを作成したいと思っています。
Directshowでサンプルを見ながら、キャプチャはできたのですが、
ユーザーインタフェースが未完成です。
そこで、PCに接続済みのカメラ(キャプチャデバイス)だけをコンボボックスに
表示させ、選択できるようにするにはどうしたらいいのでしょうか?
そして、選択されたカメラからのデータを、ピクチャか他のダイアログボックスに表示
させたいのです・・・

アドバイスお願いします。


引用解決済
トピックタグ
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 23年前
投稿: 4
 

デバイスの列挙を行いたければ、
DirectX 8.0 の日本語ヘルプで「CLSID_VideoInputDeviceCategory」
をキーにして「検索」してみてください。
サンプルでは、「dvapp」あたりをベースにしてみれば?
DV_InitControls()でToolBarにコンボボックスを追加で貼り付ければ
いいと思います。


返信引用
あやや
 あやや
(@あやや)
ゲスト
結合: 22年前
投稿: 12
 

お返事ありがとうございます。
Directshowの日本語ヘルプってあったのですか???
少し難しい言葉がでてきて、混乱状態です。申し訳ありません。

>DV_InitControls()でToolBarにコンボボックスを追加で貼り付ければ
いいと思います

についてがよくわからないのですが・・・
ご解説いただけるでしょうか?


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 23年前
投稿: 4
 

> 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についてご存知なければ、もうちょ苦労
していただくことになると思いますが。


返信引用
あさひ
 あさひ
(@あさひ)
ゲスト
結合: 22年前
投稿: 9
Topic starter  

ありがとうございます。
MFCやSDKについての知識はまだまだ浅いのですが、マイクロソフトのページとボコノン
教徒さんに教えていただいたもので、できそうです(^^)
初心者に対して、とても親切でわかりやすいお返事をくださり、ありがとうございまし
た。


返信引用
あさひ
 あさひ
(@あさひ)
ゲスト
結合: 22年前
投稿: 9
Topic starter  

あの、大変申し訳ないのですが、
サンプルをビルドしてみたところ、

LINK : fatal error LNK1104: ファイル ..\..\baseclasses\debug\strmbasd.lib を開け
ません。

というようなエラーがでました。
strmbasd.libをプロジェクト->設定のリンクに貼り付けてビルドしてもみたのですが、
解決されません。
どうしてでしょうか?


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

> LINK : fatal error LNK1104:
> ファイル..\..\baseclasses\debug\strmbasd.lib
> を開けません。

「プロジェクト」ー「設定」ー「リンク」ー「インプット」
で strmbasd.lib が相対パスで指定されています。

DirectXのサンプルはライブラリやインクルードで
このような相対パスをよく使うので注意が必要です。
私も苦労しまた。


返信引用
あさひ
 あさひ
(@あさひ)
ゲスト
結合: 22年前
投稿: 9
Topic starter  

本当でした!!
インプットを絶対パスで書き直すとエラーがとれました。
ありがとうございます!!
けれど・・・また今度は違うエラーが・・・?

>LINK : fatal error LNK1104: ファイル D:\Microsoft.obj を開けません。
>link.exe の実行エラー

しかし、D:\Microsoft.obj というファイルなんて存在していませんでした。
これは何のためのファイルなのでしょうか?
どこかから、探してダウンロードしなければならないものなのでしょうか?


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

>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みたいですが。


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

よくよく読んだら、きっとこっち

http://codeguru.earthweb.com/mfc/comments/34078.shtml

ですね。


返信引用
あさひ
 あさひ
(@あさひ)
ゲスト
結合: 22年前
投稿: 9
Topic starter  

んん・・?
これは、プロジェクト->設定のリンク内の”Microsoft”を”Mixrosoft_SDK”に書き換
えるのではないのですよね?

>プロジェクトをコピーせずにオリジナルの位置でビルドすれば
>OKみたいですが。

とは、どうすることなのでしょうか?
・・・本当にわからなくてすみません。


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

>プロジェクトをコピーせずにオリジナルの位置でビルドすれば
>OKみたいですが。

SDKのサンプルディレクトリを別の位置にコピーしてBuildしてい
るのですか?
コピーせずに、解凍したサンプルのプロジェクトをそのまま
VCに取り込んでBuildするとどうなりますか?


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 22年前
投稿: 310
 

こんにちは、RAPTです。

> これは、プロジェクト->設定のリンク内の”Microsoft”を”Mixrosoft_SDK”に書き換
> えるのではないのですよね?
これは、エクスプローラ等で、直接、Microsoft SDKというフォルダ名を、
Microsoft_SDKに変更し、VC++のインクルード設定等の Microsoft SDK
もすべてMicrosoft_SDKに変更しなさい、という意味です。

Windows98/VC++6.0std/SDK-may2002/ATL3.0/WTL7.0


返信引用
あさひ
 あさひ
(@あさひ)
ゲスト
結合: 22年前
投稿: 9
Topic starter  

こんにちわ。

直接、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 が未解決です。

今度は次のようなエラーが出てきます。
現在、必死でエラー原因を探しています。


返信引用
ボコノン教徒
 ボコノン教徒
(@ボコノン教徒)
ゲスト
結合: 22年前
投稿: 90
 

日本語へるぷの「DirectShow」-「ファースト ステップ ガイド」-「ビルド環境の設定」
をきちんと読んでください。

> CDVGraph.obj : error LNK2001: 外部シンボル _IID_IDVSplitter は未解決です

strmiids.lib が足りません。

プリプロセッサフラグ DEBUGは追加してありますか? (_DEBUGじゃないよ)
まさか、新規にプロジェクトを作成してビルドしているとか。
もしそうなら、VCの初心者にとってそれはちょっと無謀です。

> strmbasd.lib(wxdebug.obj) : error LNK2001:
> 外部シンボル __imp__strrchr は未解決です

まさか、VCのデフォルトライブラリのSTRMBASD.LIBを引いてきてるんじゃ
ないでしょうね。


返信引用
固定ページ 1 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました