牛、豚、鶏、どれか一つ食べられなくなるとしたら?

VisualC++.netでCOMを作成する場合
基本的にMFCかATLベースになるわけですよね?
両者、違いがあるとするとなんでしょうか?
新規にCOMを作成するならMFCよりATLでしょうか?

COMについて全く知識がありません。。
何故COMにするのか、COMにするメリット、デメリットはなんなのか等
メリットとして色々な言語から呼び出せる。
デメリットとしてレジストリに登録する必要がある。
といったところでしょうか?
宜しくお願い致します。

またCOMについてお勧めの書籍やサイトがあったら教えてください。

A 回答 (1件)

ATLとMFCの両方に存在する機能を使う場合、ATLを使うほうが生成されるCOMコンポーネントのサイズが小さくなります。

これがMFCに対するATLのメリットです。

しかしMFCの機能がすべてATLにも存在するわけではありませんので、ATLを使っていて「あーここでMFCが使いたい!」ということもあり得ます。例えば、VC++.NETになる前(VC++6まで)はMFCのみでCStringクラスが使用できたので、ATLでCStringを使いたくなっても(なりますよね?(笑))、MFCを使わないという選択をしている限りCStringは使えませんでした。MFCとATLを共用することは可能ですが、そうすると「COMコンポーネントのサイズが小さくなる」というメリットはなくなってしまいます。

COMそのもののメリットは・・・あまりに幅広すぎて私の能力では説明が難しいので、他の方にお譲りします。
    • good
    • 0
この回答へのお礼

いつも的確な回答有り難うございます。
とりわけATLの方が良いという事は無いようですね。
まだちょっと勉強しただけなのですが
Comの存在理由(メリット)が少しは分かったと思います。

>ATLでCStringを使いたくなっても(なりますよね?(笑))、
私の場合MFCを避ける傾向があって
むしろstd::basic_string<TCHAR>を使ってしまいます。
最近は好き嫌いをいっていられないのですが・・・(泣)

お礼日時:2005/07/19 17:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!