• ベストアンサー

Directshowのサンプルを利用して

Directshowに入っているamcapというサンプルがあります。 このワークスペースを利用して、自分なりのアプリケーションに変えていきたいのですが、あまりにcppのプログラムが長く、びっくりしています。 不要な部分を削除し、追加したい機能を入れる場合、どんな手順からやっていけばよいでしょうか? ちなみに、プログラムは初心者です。 宣言されてる意味もあまりよくわかっていません・・・

noname#47454
noname#47454

質問者が選んだベストアンサー

  • ベストアンサー
  • nta
  • ベストアンサー率78% (1525/1942)
回答No.1

>プログラムは初心者です Windowsのプログラミングはある程度できるが、DierctshowのAPIは初めてという意味でしょうか。全くのプログラム初心者ではとりつくしまもないと思います。  開発環境にもよりますが、おそらくサンプルをコンパイルするだけでもエラーがたくさん出てくると思います。まずは、WindowsのマルチメディアAPIに関連する資料を集めて比較してみられてはいかがでしょう。安定にコンパイルできる環境を作るためには、Directshowを使った簡単なプログラムから始めて拡張していき、どうしても分からないところをamcapなどのサンプルを読んで書き込んでいくという方法が確実だと思います。Directshowに関連する和文の資料はほとんどみられないのですみませんが洋書でお願いします。 Programming Microsoft Directshow (Multimedia Programming S.)(英語) http://www-kobayashi.ctrl.titech.ac.jp/members/mtanaka/vc/A/3-i.html

noname#47454
質問者

お礼

ご回答ありがとうございます。 簡単なプログラミングは参考書をみながら作成した程度なのですが・・・ Directshowを使っては初めてです。 確かに、サンプルをビルドする際もなかなかうまくいかず、時間をかけてしまったのですが、なんとかビルド成功しました。 やはり、少しずつ確実に作ったほうがよいでしょうか? サンプルはあまりに古いコードでかかれ、クラスウィザードも使用していないものだった為、手のつけようがないのですが・・・

その他の回答 (1)

  • nta
  • ベストアンサー率78% (1525/1942)
回答No.2

 MFCからWindowsプログラミングに入った人にとってみればWindows3.1時代のプログラミングスタイルは慣れないかもしれません。しかし、サンプルコードはほとんどそのスタイルをとっていますから、のちのちのデバッグのためにも読みこなす力は必要だと思います。迂遠なようですが (1)MFCで作られたスケルトンの中にサンプルコードから必要な部分を埋め込んで少しずつ構築する。 (2)サンプルコードがせっかくビルトできたのでいざというときにトレース実行で動作を確認する。 と進めていく方が実力がつきますし、トラブルの解決にも役立ちます。しかし、あくまで自分の勉強もしくは趣味の世界での話で、これが業務であるとなると悠長なことはいってはおられません。さっさとできそうな人に依頼するか外注する、もしくはミドルウエアのメーカからパッケージを購入するしかないでしょう。 Directshowの具体的な話に入れなくて申し訳ないのですが、Windwosプログラムのある程度の経験が不可欠なレベルなのでご容赦ください。

noname#47454
質問者

お礼

ご回答、大変ありがとうございます。 やはり、少しずつ埋め込んでいくのが勉強する意味で、よいでしょうね。 今回は卒業研究でやっているので、ちゃんとしたモノはできなくても、勉強していきたいと思います。 それにしても、コードは長い・・・のですが。 今回はありがとうございました。

関連するQ&A

  • サンプルプログラムに著作権はあるのか?

    【質問趣旨】技術書のサンプルプログラムを参照しながら作ったプログラムは著作権に違反するか? パソコン技術書に、あるOSの機能を奪取して自分が望む機能を追加するサンプルプログラムが記載されており、なおかつそのサンプルプログラムのソースリストが技術書の付録CDに収録されていました それらの資料を熟読した私は あぁ、このような方法・手順でプログラムを組めば良いのだなぁ~ と理解することが出来ました 大変素晴らしいプログラムであり勉強にはなりましたが、分かってしまえば簡単な原理でした この原理は有名らしく色々なサイトにも掲載・説明されています 特に独創性が高いとも思われませんでした ← 私見です 私は付録CDからサンプルプログラムを読込み、私が必要とする機能を追加するために大幅に加筆修正しました 最終的には私が作ったプログラムは技術書のサンプルの3倍程度まで膨らんでいます しかしソースリストを見る人が見れば技術書サンプルプログラムを参照しながら作ったことは一目瞭然です 作ったプログラムを自分で使用しているだけであれば差ほど問題はないとは思いますが、他の人に・・・・・特に有料で・・・・・提供したら著作権などに抵触するでしょうか? 【付記】他人に提供する場合には、実行形式だけでありソースリストを開示するつもりはありません

  • サンプル動画が見れない

    最近「プログラムの追加と削除」をいじってたせいか、ネット上のサンプル動画がみれなくなりました。 WINDOWS UPDATEも試みましたが効果なしでした。 まず何から確認したらいいでしょうか? よろしくお願いします。

  • VC++ DirectShow グラフにフィルターを追加する方法

    DirectShowにてビデオキャプチャデバイスから ファイルに保存する(プレビューウィンドウ付き)で 普通にAVIファイルには保存できますがフィルターのMicrosoft Video 1を追加して圧縮をして保存するようにしたいと思います。 (上記フィルタは本当に圧縮かどうかはわかりませんが。。。 GraphEditで確認したところ圧縮(保存ファイルサイズが激減)したようでしたので。。) 現在のフィルターグラフにMicrosoft Video 1を追加する方法をご教示願えればと思います。 初心者なのでMSDNなど見てもいまいち理解できません。 簡単なサンプルなどあれば助かります。 よろしくお願い致します。

  • SH-2AマイコンをHEWで動かすことについて

    SH-2AマイコンのLEDを点滅させるプログラムをHEWにて作成しデバッグをするのですが ダウンロードしたサンプルプログラムの場合、LED点滅が実行されプログラムを停止することもできます。 しかし自分で作成したワークスペースでは、デバックするとそこで固まり、LED点滅されずプログラムを停止することも出来ず毎回タスクマネージャーから強制終了しています。プログラムをサンプルプログラムと全く同じものにしても、自分のワークスペースでは固まってしまい困っています。

  • VC++2005ExpressEditionでサンプルプログラムが動かない

     Visual C++ 2005 Express Editionを使用しています.コンパイル時にエラーが出て困っています.どなたか解決法をご教授ください.  「猫でもわかるネットワークプログラミング」という本に載っているサンプルプログラムをコンパイルしようとすると,エラーが出ます(下のアドレス(*1)の『PDFで試し読み』に該当プログラムがあります).  とりあえず少しずつ実行しようと,サンプルプログラムの冒頭の16行目まで書いてコンパイル・実行すると,完全に意図した動きをしました.しかし,21行目まで書いてコンパイルすると,次のエラーが出ます(ファイル名は net.cpp ). vvvvvvvvvvvv 1>c:\***\net.cpp(16) : warning C4996: 'gets' が古い形式として宣言されました。 1> c:\program files\microsoft visual studio 8\vc\include\stdio.h(270) : 'gets' の宣言を確認してください。 1> メッセージ: 'This function or variable may be unsafe. Consider using gets_s instead. To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help for details.' 1>リンクしています... 1>net.obj : error LNK2001: 外部シンボル "__imp__InternetOpenW@20" は未解決です。 1>C:\***\Debug\net.exe : fatal error LNK1120: 外部参照 1 が未解決です。 1>ビルドログは "file://c:\***\BuildLog.htm" に保存されました。 1>net - エラー 2、警告 1 ^^^^^^^^^^^^  一文を加えた途端にエラーとなったので困惑しています.何かVC++の設定が悪いのでしょうか.「新規作成->プロジェクト->Win32->Win32コンソールアプリケーション」とし,次に出てくる「Win32アプリケーション ウィザード」で「空のプロジェクト」にチェックを入れています. (*1) http://shop.sbcr.jp/bm_detail.asp?sku=4797323604

  • PlatformSDKのサンプル等のビルド

    DirectShowの機能を使おうと考え,Windows Server 2003 SP1 Platform SDKをインストールしました. BaseClassesのビルドを行ってstrmbasd.lib等を得るために,バッチファイルをもちいてnmakeコマンドによりビルドしたのですが,下記のようなエラーが出てしまい,ビルドができませんでした.他のサンプルも似たようなエラーが出てしまい,ビルドできません. 対処の仕方がわからず,困っております. C:\Program Files\Microsoft Platform SDK\Samples\Multimedia\DirectShow\BaseClasses\ctlutil.h(278):error C4430: 型指定子がありません C:\Program Files\Microsoft Platform SDK\Include\uuids.h:warning C4819: ファイルは,現在のコードページ(932)で表示できない文字を含んでいます. NMAKE:fatal error U1077: 'cl': return code '0x2'Stop ちなみに開発環境はOS:windowsXP sp2,Visual Studio 2005 Standardを使用しています. よろしくお願いします.

  • ノートンシステムワークスのアンインストール

    ノートンシステムワークス2005を再インストールしようと思ってアプリケーションの追加と削除からアンインストールを試みましたが、うまくできません。どうしたらいいかおしえてください。

  • VC++6.0の基本的な質問(操作)

    VC++初心者です 別々のプログラムA、とBがあったとします。プログラムAの中で使われているクラスの派生クラスをプログラムBで作ろうと思いますが、そういう場合みなさんどうしてますか(簡単な方法ありませんか)? また作ったクラスやリソースをワークスペース内から削除(コメントアウトではなく)したいのですが、うまくいきません。これも何か良い方法ありませんか? よろしくお願いします。

  • DirectX9.0SDK(2005August)でのcppファイルの追加について・・・

    こんばんは、このたびはDirectX9.0のSDK(2005August)をインストールし、早速開発しています。 そこで分からないことがあるので質問させていただきます。 大きなプログラムを作るときって、機能ごとにファイルに分けますよね。で、プログラムを分けるときって、~.cppと~.hをセットみたいに作りますよね? 普段はこれでプログラムの分割もできるのですが 今回、SDKについているCommonフォルダ内のファイルを使ったサンプルに、自分で作ったプログラムを追加していった結果、コンパイル時にcppファイルで必ず「プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。」というエラーが発生してしまいます。(なぜかメイン関数のあるcppファイルではそのエラーは出ないのですが・・・) この原因と解決法について、どなたかご存知でしたら回答をお願いいたしますm(_ _)m 分かりづらい質問ですみません^^;

  • リムーバブルディスクについて

    windowsのヘルプを見たら このプログラムはコンピュータにインストールされていません。インストールするには、次の手順に従います。 書いてある[アプリケーションの追加と削除] からインストールしようと思いましたがよく分りません。 デジカメから画像を取り出したいのですがどうすればいいか教えて下さい。多分以前に私が削除したのかも知れません。

専門家に質問してみよう