• 締切済み

COMプログラミングに良い書籍

Win2000Pro、VC++6.0とMFCで普段はアプリを作っています。 今度から、ライブラリをCOMコンポーネントで作成して提供する ことになりました。COMプログラミングの理解に向いている と思われる書籍があれば教えてください。本屋にいっても、 ATLの使い方やDCOMの話が中心のようです。 普通のプログラミングとどこが違うのかをわかるようなものが あればベストです。よろしくお願いいたします。

みんなの回答

  • JeanneNet
  • ベストアンサー率48% (100/208)
回答No.1

こんにちは、じゃんぬねっと です。 Don Box の Essential.COM がお勧めです。 http://www.amazon.co.jp/exec/obidos/ASIN/4756130666/ref=pd_bxgy_text_1/503-5014873-8943129

fuku0123
質問者

お礼

レス遅れまして失礼いたしました。 今日、本屋で、教えていただいたCOM本の中身を 見てきました。後半は???ですが、前半は、 今あるC++の知識(といっても中途半端ですが)で 何とか読めそうな気がしました。 紹介いただきありがとうございました。 (見ただけでまだ買っていません。給料日前なので・・・)

関連するQ&A

  • COMについて

    VisualC++.netでCOMを作成する場合 基本的にMFCかATLベースになるわけですよね? 両者、違いがあるとするとなんでしょうか? 新規にCOMを作成するならMFCよりATLでしょうか? COMについて全く知識がありません。。 何故COMにするのか、COMにするメリット、デメリットはなんなのか等 メリットとして色々な言語から呼び出せる。 デメリットとしてレジストリに登録する必要がある。 といったところでしょうか? 宜しくお願い致します。 またCOMについてお勧めの書籍やサイトがあったら教えてください。

  • Visaul Studioでのデバッグ(COMコンポーネントのデバッグ方法)

    お世話になります。 今、VC++でATLのCOMプログラムをしていますが、 デバッグ方法がわかりません。コンパイルして、実行は、.htmファイルを開くため、C言語などのようにprintf()などで値を見たり、デバッガなどが起動してもブレイクポイントが?になります。 そこで少し調べたところ、MSDNに記載されていました。 http://msdn2.microsoft.com/ja-jp/library/ya4xb00s(VS.80).aspx Visual StudioでのCOMコンポーネントのデバッグ設定方法についてです。 の手順3.eのCOMコンポーネントノードとはどれをさすのでしょうか? COM+アプリケーションふぉるだを開くと COM+ Explorer COM+ QC Dead LetterQueue Listener COM+ Utilities などがあります。 よろしくお願いいたします。

  • COMコンポーネントの構造の本質的理解ができない

    プログラミングを始めて間もない初心者です。 windowsアプリケーションを制御対象として扱おうと、win32oleライブラリをrequireしてCOMコンポーネントを扱う方法をネット上で色々調べてみたのですがどうも腑に落ちない点・分からない点があるので質問します。 rubyリファレンスマニュアルからリンクされているサイト(http://jp.rubyist.net/magazine/?0003-Win32OLE)において、以下のような記述があります。 >COM ではインスタンスを生成するときに「COM コンポーネント」を指 >定するための ProgID を引数として WIN32OLE.new メソッドを実行し >ます。 COM コンポーネントとは、Windows に登録された、ある機能 >(たとえば、IE や MS Office の制御機能) を提供するためのもので >す。この「COM コンポーネント」を利用して作成したインスタンス を>「COM オブジェクト」とこの記事では呼んでいます。 COM オブジェク>トを作成した後は、その COM オブジェクトで定義されている「メソッ>ド」を実行することでそのコンポーネントが提供する機能を実現する >ことができます。 この文に従えば、作成したCOMオブジェクトを扱う方法を知るためにはCOMオブジェクトで定義されているメソッドを参照すれば良いこととなります。そこで自分もWIN32OLE.new("InternetExplorer.Application") によって得たCOMオブジェクトにWIN32OLE.ole_methodsを適用することでメソッドの一覧を取得しましたが、前述のサイトで紹介されているie.document.all.Item()というメソッドを探してみてもどこにも見つかりません。 これはどういうことなのかと思い、ネット上で色々とCOMとは何か、タイプライブラリとは何かなどを調べて見ましたが、いまだCOMの全体像の把握ができません。 たとえばrubyの場合、あるオブジェクトに対して使えるメソッドというのはそのオブジェクトが該当するクラスに於いて定義されているメソッド((1))及びkernelモジュールで定義されている組み込みメソッド((2))ですよね。 (初心者なのでこの理解にも間違いがあるかもしれませんがその場合はご指摘お願いします) このような考え方でいくとWIN32OLE.ole_methodsによって取得したメソッドの一覧は(1)にあたり、document.all.Item()というのは(2)にあたるのではないかという考えもできるかと思うのですが誰か正しい理解をご教授いただきたいです。 質問が長くなってしまいましたがie.document.all.Item()というメソッドがどこに定義されているのか、そういったメソッドの定義場所はCOMにおいてどのように見つけるのか、そこだけでもいいのでよろしくお願いします。

    • ベストアンサー
    • Ruby
  • 作成したDLLをATL_COM_APPWIZARDで利用する方法について

    VC6++のWin32 Dynamic Link LibraryでDLLを作成しました。 DLLはできたのですが、これを利用する方法がわかりません。 ATL COM AppWizardで作成するアプリからDLLのクラスを使いたいのですが、どのようにすれば使えるのでしょうか? 最初のDLL側は class Test{ Test(){ ShowMessageBox(NULL, "最初のDLL", "呼ばれました", MB_OK); } }; というクラスです。 ATL COM Appwizardでは、 どのように記述すれば、DLLのクラスを利用することができるのでしょうか?

  • COMプログラミング教えてください。

    //COMプログラミングVC->VB6.0 Visual C++で、 main.cpp , NumberClass.h , NumberClass.cpp , NumberIDL.idl ファイルを以下のコードで作成し、 実行しましたら、正常にコンソールアプリケーションが動作しました。 次に、 VisualBasic6.0から参照設定で、Number.tlbというタイプライブラリを読み込ませて実行させたところ、「Functionまたは変数が必要です。」とエラーが表示されました。 どうすれば解決できますか?よろしくお願いします。 VB6.0のコード Private Sub Command1_Click() Dim a As NumberLibrary.NumberClass Dim b As Long b = a.Add(15, 35) End Sub //main.cpp #include<stdio.h> #include<string.h> #include"NumberClass.h" int main() { NumberClass Number; printf("%d",Number.Add(10,90)); getchar(); return 0; } //NumberClass.h class NumberClass { private: int num; public: int Add(int a,int b); void Save(int a); void Load(int *a); }; //NumberClass.cpp #include"NumberClass.h" int NumberClass::Add(int a,int b) { return a+b; } void NumberClass::Save(int a) { num=a; return; } void NumberClass::Load(int *a) { *a=num; return; } //NumberIDL.idl import "oaidl.idl"; import "ocidl.idl"; [uuid(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx),version(1.0)] library NumberLibrary { importlib("stdole2.tlb"); [uuid(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx), object] interface INumber : IUnknown { HRESULT Add([in]int a,[in]int b); HRESULT Save([in]int a); HRESULT Load([out]int *a); }; [uuid(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)] coclass NumberClass { interface INumber; } };

  • スプラッシュウィンドウの出し方

    よろしくお願いします。 環境 WIN98 VC++6.0 MFC SDIにて スプラッシュウィンドウの出し方ですが、 「プロジェクト」「プロジェクトに追加」「コンポーネント及びコントロール」でコンポーネントギャラリーを開く。 とありました。 自分が実際に出したい絵はどうすれば出せるのですか?

  • 本当にオブジェクト指向プログラミングっていいのでしょうか?

    いつもお世話になっております。 VC++初心者です。 現在、VC++6.0、MFCのソース修正で四苦八苦しています。 (コーディングするよりも。ソースを追うので苦労してます。) (初心者の私が言うのも難ですが、オブジェクト指向云々言う前に  ソースのif文節が異常に長かったり、3重以上ループが出てくると  とても嫌になります、、、) 一般的(?)に、プログラミングは 手続き型プログラミングよりオブジェクト指向プログラミングが 開発効率がよい、と重宝されているようですが、 どうも納得できていません。 (その手の書籍を2,3冊読みましたが消化不良に終わっています。) 個人的には、手続き型プログラミングの方が好きです。 というのも、慣れているからかもしれませんが、 ソースが追いやすいし、見やすいと思います。 逆にオブジェクト指向プログラミングでは、 ・継承されすぎると、基本クラスまで追うのが一苦労。 ・インスタンスをつくってから、関数を呼ぶのが面倒な気がする。  (手続き型なら関数呼び出しのみで済みます。) ・インスタンスをdeleteし忘れて、メモリを圧迫する危険がある。  (ガーベージコレクションというものもあるようですが、  どこで何を消しているか不安です。) ・ソースを追いにくい(慣れの問題なのでしょうか、、、) そこでですが、 「手続き型は~~で大変だけど、オブジェクト指向ならこんなにすばらしい」 というような対比的に具体例を挙げて説明されている 書籍、サイトの紹介、または、よい助言を頂けませんでしょうか。 また、上記に伴い、 ・手続き型で組んで失敗した例(オブジェクト指向型にすれば良かった例) ・オブジェクト指向型で組んで失敗した例(手続き型にすれば良かった例) も宜しければ教えて頂きたく、お願いします。 (成功例のみよりも、失敗からの成功例を教えて頂けると嬉しいです。) 長くなりましたが、宜しければご教授下さい。

  • Windowsアプリケーションのお勧め開発言語について

    vectorなどで公開できるような、Windowsアプリケーションを開発したいと考えています。 皆様のお勧めの開発言語・開発環境を教えて頂けますでしょうか。 条件は、ランタイムが不要なことです。(なのでVB.Netなどは対象外です。) はじめは、TurboDelphiを考えていたんですが、今はフリー版が配布されていないようなので、 VC++のATL/WTLを使うのが良いのかなと思っています。 (正直、またWin32、MFC、ATL、WTLの違いも理解できていませんが、、、) 何かお勧めがありましたら御教授ください。

  • 「MFCを使用しない」から「MFCのスタティックライブラリを使用」

    VC++初心者ですが、 Win32Applicationで「MFCを使用しない」で作成したプログラムが正常動作しました。 そこで 「MFCを使用しない」から「MFCのスタティックライブラリを使用」にしてビルドしたところ、リンク中に どんどんエラーがでます。 関数関係のエラーなのですが。 (1) どうすればエラーを無くせるのでしょうか (2) 「MFCのスタティックライブラリを使用」にするとどの様なメリットがあるのか(説明している参考URLなど)。 教えて下さい

  • プロのVC++プログラマはどこまで学習すべきでしょうか?

    こんにちは。いつもお世話になります。 VC++6.0 MFC使用 Win2kの環境で 事務系(販売管理とか、顧客管理など)ソフトウェアを 完全オーダーメイドを一人でやってます。 日経BPソフトプレス 「プログラミングVisualC++6.0」(すごく分厚いです) を参考書としてはや3年やっておりますが、前半は理解しましたが、 後半のCOMとかはさっぱり理解できません。 ソフト開発業者のプログラマの皆さんはこういったことを、理解されているのでしょうか? また、こういったことをソフト開発現場では必須理解なんでしょうか? と申しますのが、他の参考書はCOM等全く触れていません。今後、オーダーソフトだけでなくシェアウェア等の開発にも着手したいと思っています。 どこまで学習すべきかプロの方、ご教授ください。お願いいたします。

専門家に質問してみよう