質問: comコンポーネントって何? よく、comコンポーネントって聞くんですが、何のことかわかりません。vbやvbaのような言語名ではないことは、なんとなく分かるのですが・・・。できるだけわかりやすく教えてください。
回答: componentobjectmodelの略です。 コンポーネントとは、ソフトウェアの部品として機能する オブジェクトのことです。 関数との違いは、クラスとしてカプセル化してあるので 保守性・再利用性とともに、ブラックボックス化しているので 利用が簡単、という点もあります。 定義については他の方がおっしゃってる通りなので comを使うメリットと特徴について軽く説明しておきます。 また、activexやdcomなども含めて、comといってしまうことが 多々有るようです。 corbaをご存知なら、それに似たものと考えてください。 利点: 言語・処理系に依存しない(バイナリ)コンポーネント つまり、vc++でcomを作ってそれをvbやdelphiから自由に呼び出せる。 計量で高速なコンポーネントも設計可能。 実際のcom作成について: dllとの違いは、dllが関数ベースであるのに対して comは基本的にクラスベースなので、独立性・再利用性・保守性の高い コンポーネントの作成が簡易です。 dllでも一応クラスの形式を取ることは出来ますが、バージョンアップ時 インターフェイスが変わってしまうと問題があります。 comではjavaのinterface,implimentに似た仕組みで インターフェイスを統一できます。 ネットワーク越しに実行出来る(透過性)ものをdcom、 gui要素を持つcomをactivexなどと呼び分けるのが従来のようです。 これはmicrosoft社の技術の重要なポイントですので windows環境でプログラムを作る以上、押さえておかねばならない ネジクギ的存在になってゆくことでしょう。