• ベストアンサー

COMインターフェイスを用いたプログラムの書き方

COMのプログラムに関するHPはあるにはありますが、いまいちどこからはじめていいのかわかりません。 VC6.0でCOMインターフェイスを用いたプログラムの作成の仕方を教えていただきたいです。 まず、 ・どのようなプロジェクトを開いて行うか? について教えていただけませんでしょうか? ちなみにPlatformSDKにUPnPに関するCOMインターフェイスが用意されていると思いますが、最終目標はこれを用いてプログラムを書くことです。 よろしくお願いします。

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

com自体の仕様はかなり複雑で ここですべてを説明する事は不可能です。 comを新規に作成する場合、ATL或いはMFCを使うのが現実的です。 MFCとATLの違いですが MFCのが方が実装が簡単だとよく聞きます。 逆にATLは軽くて融通が利くかもしれませんが、 あまり大差は無いでしょう。 ただ今回はcomクライアント側のようなので関係ないですね。 今までcomプログラミングをしたことないのなら comプログラミングの本を買ったほうがよいです。 ただcomプログラミングの書籍自体がほとんどなくMFCのもの にいたってはほぼ絶版。今買うならこの本ですかね。(当然comクライアント側のことも記述されています。) http://www.amazon.co.jp/exec/obidos/ASIN/4881356992/qid=1124355242/sr=8-2/ref=pd_ka_1/250-9930501-3995412 http://www.amazon.co.jp/exec/obidos/ASIN/4881358316/ref=pd_rhf_f_1/250-9930501-3995412 >idlファイルは#includeでインクルードするのでしょうか? idl(Interface Description Language)というものは これはmidlというプリコンパイラでプリコンパイルします。 (MIDL.EXEというものがVisualC++6.0に含まれているはずです。) COMクライアント側はMIDLが吐き出したCソースをコンパイルします。 何度もいうようですが、comの参考書は買ったほうが良いでしょう。

jimihenn
質問者

お礼

どうもありがとうございます。 MIDLというものを使うとUpnp.hなどのファイルができました。これをインクルードすると正常に動きました(助かりました!!)。 参考書は探してみます。

その他の回答 (2)

  • buihyaku
  • ベストアンサー率29% (97/326)
回答No.2

UPnPのインタフェースを使用してプログラムを書く、ということは、作成するプログラムはCOMクライアントでしょうか? クライアントを書くのであれば、基本的にプロジェクトはなんでもかまわないとおもいます。 普通、クライアントプログラムを書くときには、#importディレクティブでタイプライブラリ(.tlb)情報を取り込んで使用します。そうすると出力フォルダ(Debugなど)にそのタイプライブラリをC++から使用するためのヘッダファイルが「コンパイル時」に自動的に生成されます。 #importではタイプライブラリ情報を含むexeやdllを直接指定することもできます。詳しくは「#importディレクティブ」でヘルプを検索してみてください。 以上、一般的な話なのでUPnPで役に立つかどうかわかりませんが多少でも参考になれば幸いです。

jimihenn
質問者

お礼

どうもありがとうございます。 ご回答を受けて実際にコンソールで作っているのですが、MSDNのリファレンスにはUpnp.idlというヘッダーファイルにインターフェイスが定義されているようなのです。 idlファイルは#includeでインクルードするのでしょうか? また「tlb」というファイルはどれを使えば良いのか記述がなかったためわかりませんでした。 図々しいようで申し訳ございませんが、もしお暇な時間がございましたら、教えていただけませんでしょうか? ちなみにインターフェイスは「IUPnPDeviceFinder」というものを使用しております。 どうぞよろしくお願いいたします。

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

その質問は 「Windowsのプログラムを書きたいです。まずどのようなプロジェクトを開いて行えばいいですか?」 という質問と同じくらい幅広いです。 どちらの質問も、簡単に回答すると 「どのようなプロジェクトでも構いません」 となります。 プロジェクトの種類によって使用するクラスライブラリ(なし/MFC/ATL)と、統合環境による(ウィザード等の)サポートが異なりますが、どのプロジェクトの種類を選択してもCOMインターフェースを使うプログラムは作成できます。 何も参考資料なしで独力で学習するのはちょっと大変だと思うので、何か参考資料(ちょっと高めですがMicrosoft Pressの本などお勧めです)を先に用意されたほうが良いかと思います。 そうすると、その中にチュートリアルがあると思うので、まず最初はそこに書いてある手順でプロジェクトを作成するのが楽で良いでしょう。

jimihenn
質問者

お礼

どうもありがとうございます。 やはりちゃんとした参考書を買ったほうが良さそうですね。

関連するQ&A

専門家に質問してみよう