どうしてCOMは即死したのかat TECH
どうしてCOMは即死したのか - 暇つぶし2ch112:デフォルトの名無しさん
06/07/30 08:36:46
ちょっくらタブブラウザについてのお勉強してみたいかなー、とか思ったんだけど
COMについていいサイトってある?できれば日本語で




こんなこと言ってる時点でダメすぎなのはわかってますよ、ええ・・・

113:デフォルトの名無しさん
06/07/30 08:37:21
スマン、あげとくです

114:デフォルトの名無しさん
06/07/30 14:43:49
>>112
とりあえず
URLリンク(www.asahi-net.or.jp)
なんかがあるけど、急がば回れで Essential COM を読むのが個人的オススメ。
まあ「ちょっくら」にはふさわしくないかもしれんが

115:デフォルトの名無しさん
06/07/31 00:58:14
COMに関するスレがここしか見当たらないので、ここで質問させていただきます。
コネクションポイントからのイベントを受けるシンクオブジェクトは、CoInitialize()で初期化しなければならないんでしょうか?



116:デフォルトの名無しさん
06/07/31 02:33:07
CoInitializeはオブジェクトに対してではなくCOMを使用するスレッドが最初に呼び出すもの。

117:デフォルトの名無しさん
06/07/31 20:22:18
VBはIUnknownインターフェイスの情報ってどこから仕入れてるの?
C,C++ならUnknwn.Idlから生成されたUnknwn.hで型情報が分るけど、
VBはどこで見てるの?

118:デフォルトの名無しさん
06/08/01 12:34:17
>>81
OD,OAって、CR,LFだったような遠い記憶がする。


119:デフォルトの名無しさん
06/08/01 14:50:45
OD OAではなく0D 0Aだがな

120:デフォルトの名無しさん
06/08/01 15:48:15
>>117
適当にどこかのタイプライブラリから見ているのだろう。

121:デフォルトの名無しさん
06/08/01 15:57:22
idlってCOMクライアントアプリケーションの言語に依存しない独立した言語じゃなかった?
コンパイルするとクライアントアプリケーションで利用可能なファイルを生成するんだよね。
C,C++ならhやxxx_i.cとか。VB用なら.tlbファイルにコンパイルするのだろう。
tlbはタイプライブラリだからそのとおりだけど。

122:デフォルトの名無しさん
06/08/01 16:00:33
言語に非依存だけど、Windowsに非依存にならなかったから、終ったんだおね。
Win専用であれば普通のクラスライブラリの方がコーディングしやすくて性能も有利。

123:デフォルトの名無しさん
06/08/03 20:17:10
OLE,ActiveX,COMの違いが分からない
3.0,3.1 Me,XPみたいに
OSのバージョンを数字ではなく英字で書いてるようなもん?


124:デフォルトの名無しさん
06/08/03 21:15:18
俺はこう捉えている。
COM IUnknown始め、インターフェースでクラスオブジェクトをやり取りするための仕組み。

OLE(2)/ActiveXはその基盤にCOMを使った応用であり、
なんとなく複合ドキュメントあたりはOLE、
IDispatch関連や各種コントロールはAcitveXと呼ぶことが多い気がするけど、
きちんと境界があるわけではないので、厳密な区別は無い。


125:デフォルトの名無しさん
06/08/05 02:00:56
VB6のヘルプより。
「ActiveXコンポーネント」の「OLE サーバーとの相違点」トピック。
(前略)
ここで概説されている新機能の範囲の広さに合わせて、Visual Basic で
使用される用語も調整され、従来の OLE サーバーは、コンポーネントと
呼ばれるようになりました。
(中略)
従来の呼び方をそのまま使用してもかまいません。その場合は、
"ActiveX コンポーネント" を "OLE サーバー" と読み替えてください。




126:デフォルトの名無しさん
06/08/05 19:53:53
Effective COMの巻末に、「COM仕様書を読め」とありますが、当該ドキュメントはどこにあるのでしょうか?


127:デフォルトの名無しさん
06/10/24 00:39:58
.NETってCOMの延長線上にあるものでしょ?

128:久々に
06/10/25 00:12:47
OLE → ActiveX → COM → .NET

マイクロソフトのマーケティングの都合で
改名してるとしか思えん。

需要のあるDirectXなんて新しいものを入れ込んでも
数字を大きくするだけじゃん。


129:デフォルトの名無しさん
06/10/25 03:21:05
COMって、OS非依存だ゛ったっけか。HPも無茶するよなー。
URLリンク(h71000.www7.hp.com)

130:デフォルトの名無しさん
06/10/25 11:12:14
>.NETってCOMの延長線上にあるものでしょ?

c→c++みたいな互換性なら0、つまりモノが断絶してます。
さらに、開発手法も別物なので片方の知識を覚えても片方の役に立ちません。


131:デフォルトの名無しさん
06/10/25 19:12:07
いや、仕組みが全然違うのは分るけど、でも
言語非依存にあれだけ拘るのはCOMの伝統でしょ?

132:デフォルトの名無しさん
06/10/25 20:35:49
Microsoftの実装はお互い相互運用でやり取りできるから、.NETとCOMは結構密接に感じる。
たとえばVBScriptでこんなコードが書ける。VB/VC++にはmscorlib.tlbなどのタイプライブラリもある。

133:デフォルトの名無しさん
06/10/25 20:36:35
コード張り忘れた。
Option Explicit

Dim stack
Set stack = CreateObject("System.Collections.Stack")
With stack
    Call .Push("Foo")
    Call .Push("Bar")
    WScript.Echo .Pop
    WScript.Echo .Pop
End With

134:デフォルトの名無しさん
06/10/26 00:55:42
すげーな

135:デフォルトの名無しさん
06/10/26 05:28:05
感動した。

136:デフォルトの名無しさん
06/11/25 14:39:47
ActiveXコントロールってこれからも継続されるのかな?
特に売り物。

137:デフォルトの名無しさん
06/11/29 23:21:58
>>128
DirectXでもちゃんとQueryInterface使ってるところがあったりする

138:デフォルトの名無しさん
06/11/30 00:25:17
つうか順序が違う。
COM
OLE
ActiveX
.NET

139:デフォルトの名無しさん
06/11/30 02:59:05
これ何の順番?

140:デフォルトの名無しさん
06/11/30 03:55:32
勘違いの順番

141:デフォルトの名無しさん
06/12/23 17:26:33
>>133-134
おー、最近VBScriptで使い捨てのスクリプトを書いてるんだが
こんな風に.NETのクラスが利用できるとは。
俺のようなアマチュアには嬉しい情報


142:デフォルトの名無しさん
06/12/23 17:36:26
OLE
ActiveX
COM
.NET

こういう順番に開発されたのかと思ってた。自分の無知が恥ずかしいです。
でも正しい知識が得られてよかったです。ありがとう138さん!!!!

143:デフォルトの名無しさん
06/12/23 17:47:46
COMは、古くは江戸時代の頃から、COM僧によって日本各地に広められたとされる

144:デフォルトの名無しさん
06/12/23 19:30:12
>>142
マイクロソフトがマーケティング的に推してきた順に並べるとそうなると思う。

145:デフォルトの名無しさん
06/12/24 02:09:39
COMの語源は虚無だったのか。。


146:デフォルトの名無しさん
06/12/24 02:36:53
待てよ、ole.hを覗いてみたが、OLE1はCOMを使っていない。
OLE1 → COM付きでOLE2という順ではないのか。

147:デフォルトの名無しさん
06/12/24 06:57:25
OLE
OLE2 = COM = ActiveX
COM+
.NET Framework

2段目は横並びでいいはず。
OLEの拡張機能にOLE2と名前を付けたが実態と合わないので、
基盤技術をCOMとよび応用技術や製品をActiveXと呼ぶこととしたが、
OCXカスタムコントロール=ActiveXのイメージが強すぎてグタグタ。


148:デフォルトの名無しさん
06/12/24 09:25:50
ActiveXは明らかに後から出てきたもので、
「ActiveXコントロール」は「OLEコントロール」を拡張したもの。
なんで括弧でくくってるかというと、
MS自身が「ActiveXは特定の技術を指す名称ではない」と言っているから。

COMが普及する前は、COMはOLEにのみ使われていました。
OLEは難解だけどCOMはそれほど難解じゃない。

OLE1
↓拡張
OLE2 →部分要素→ COM ←相互運用← .NET
↓拡張
ActiveX

COM自体はNETと相互運用できるし、
OLE Automation は MSOfficeやIEの自動化で今でも頻繁に使う。

MS自身が.NETに移行できてないんだから仕方がない。

149:デフォルトの名無しさん
06/12/24 18:12:36
ActiveXは、技術用語なくて、マーケティング用語だと思う。つまり、宣伝用。
だから、使い出したMSもよく分かっていない。

150:デフォルトの名無しさん
06/12/24 18:20:36
COMコンポーネントとOLEオートメーションサーバの違いは?

151:デフォルトの名無しさん
06/12/26 02:23:02
OLEオートメーションサーバからイベントを受け取るために作成するのはCOMオブジェクト。

152:デフォルトの名無しさん
06/12/26 14:21:29
OLEオートメーションサーバの場合、
やっぱりインタフェイスはOLEオートメーション互換じゃなきゃいけないんじゃない?仁義として。
普通のCOMコンポーネントなら IDL で書けさえすりゃ何でもありだろうけど。

153:デフォルトの名無しさん
06/12/26 21:05:25
いやサーバ側の定義するインタフェースじゃなくて、
たとえばWord文書のBeforeSaveとかのイベントを受け取るために作成するCOMオブジェクトの話よ

154:デフォルトの名無しさん
07/01/07 02:36:07
OLE1.0→COM→VBX→OLE2.0→OCX→ActiveX→DCOM→COM+→.NET

155:デフォルトの名無しさん
07/01/07 02:41:55
COMのスレがここ以外マジで死滅した件

156:デフォルトの名無しさん
07/01/09 10:56:16
無くなると言われると意外にウェブブラウザの進化には重要だった希ガス。
Flashとか。
Ajaxが代用となってくのかな?

157:デフォルトの名無しさん
07/01/09 11:12:50
Ajaxは厳しいな~。ある意味COMよりつらい。
JavaScriptに変わるまともなブラウザーベースの言語ができればよいけど。


158:デフォルトの名無しさん
07/01/10 23:15:10
>155
スレリンク(tech板)l50

159:デフォルトの名無しさん
07/01/11 00:25:18
スレリンク(tech板)

Visual Studio 2005のオートメーションの話です。
プロジェクトファイル(.csproj)のPropertyGroup中にエレメントを追加する方法はないですか?
IExtenderProviderつかうと↓みたいに追加されるんです。

<ProjectExtensions>
<VisualStudio>
<UserProperties Hoge = "banana">
</VisualStudio>
</ProjectExtensions>


160:デフォルトの名無しさん
07/01/30 09:06:46
ActiveX漬けの韓国,Vistaに参った
URLリンク(oku.edu.mie-u.ac.jp)

韓国ではVistaの登場で多くのサイトが使えなくなる?
URLリンク(slashdot.jp)

161:デフォルトの名無しさん
07/01/30 09:26:23
CMSってなんですか

162:デフォルトの名無しさん
07/01/30 13:39:40
>>159
シリアライズの問題だろ

163:デフォルトの名無しさん
07/02/11 17:38:04
オートメーションのCOM DLLをマニフェストを使ってSide-by-Side配置で実行したら、
異常にパフォーマンスが良くなったのですが、
SxSなし 2623.700 sec
SxSあり      3.636 sec
これだけ差が出るとSxSではないほうに問題がありそうな気もしますが、情報求む。

ソース、VS2005(STD以上)でソリューションが開けてそのままSide-by-Side配置対応のコンパイルできます。
URLリンク(www7a.biglobe.ne.jp)
Side-By-Sideと非Side-By-Sideの切り替えはここを参照。
URLリンク(densanshokunin.at.webry.info)


164:デフォルトの名無しさん
07/02/14 01:27:02
DCOM....設定綿土井

165:デフォルトの名無しさん
07/02/14 23:32:38
DCOMでよそのPCのExcelを起動できた時は感動したなあ
セキュリティ云々が問題になる前の時代の話


166:デフォルトの名無しさん
07/02/15 00:22:46
構造体やValueオブジェクトをやり取りする簡単な手段が無かったのが痛かった。
オブジェクトをそのまま返すとインターフェイスを渡すだけだからValueオブジェクトにならない。
ローカルなCOMだとプロパティから1つずつ取り出せばいいが、
DCOMだとその回数だけ通信が発生するから遅いのなんのって。

167:デフォルトの名無しさん
07/03/08 15:30:44
.NETがだめなのを見てCOMがこれからもう一度再評価されることを確信したよ

168:デフォルトの名無しさん
07/03/08 15:40:57
ヒント: AJAX

169:デフォルトの名無しさん
07/03/09 00:23:32
AJAXは.NET Fx 3.5に取り込まれることになってるな

170:デフォルトの名無しさん
07/03/10 09:11:24
>>163
あんた ネ申 かww
でも2005だけなのかな?
まぁ、試してみる。

171:デフォルトの名無しさん
07/03/11 04:56:15
APIにはドキュメントがあるのに、なんでCOM関連にはろくなドキュメントがないの?

172:デフォルトの名無しさん
07/03/11 05:19:18
APIのドキュメントもろくなもんじゃないけどな

173:デフォルトの名無しさん
07/03/11 09:59:38
少なくともMSDNライブラリでは特にCOMの文書がないということを感じたことはないぞ。

174:デフォルトの名無しさん
07/03/11 16:52:32
>>163
これはすげえ

175:デフォルトの名無しさん
07/03/12 11:25:12
URLリンク(gigazine.net)

これもすげえ

176:デフォルトの名無しさん
07/03/12 12:26:29
ワロタ
まさに外道

177:デフォルトの名無しさん
07/05/19 18:36:37
オブジェクト指向の話でよく車輪の再発明ってのが上がってくるが...

実は、車輪と呼べるものが発明されていないんだったりしてな...


178:デフォルトの名無しさん
07/05/19 22:24:05
単に、C++と相性が悪かったから滅びた。

179:デフォルトの名無しさん
07/05/19 22:55:51
レジストリに原因があると言ってくれと言っているようなもんだな


180:デフォルトの名無しさん
07/05/20 08:46:53
いやC++/ATL以上にCOMと相性のよい言語なんか無いが。

181:デフォルトの名無しさん
07/05/20 09:06:12
#importもかなり便利

182:デフォルトの名無しさん
07/09/06 21:42:36
くやしい…!  でも…感じちゃう!(ビクッビクッ

183:デフォルトの名無しさん
07/09/08 00:08:01
・COMオブジェクトの参照カウンタが0になったときに、
 そのオブジェクトが消え去る

・あるDLLに属しているCOMオブジェクトの生存数が0
 になったときにそのDLLをアンロードしてほしい

この二つは全く別の話。

184:デフォルトの名無しさん
07/09/21 01:15:21
>>133に亀で感動。

185:デフォルトの名無しさん
07/10/11 12:44:51
COMプログラミングってCだよね

186:デフォルトの名無しさん
07/10/11 18:25:33
Cで書けばCのプログラムになるね。

187:デフォルトの名無しさん
07/12/28 12:55:36
ATL基本

188:デフォルトの名無しさん
08/01/06 00:03:06
もともとはCだね

189:デフォルトの名無しさん
08/01/12 21:07:45
実はXMLでも書けるんじゃないかと


190:本田
08/01/17 17:56:01
>COMプログラマの解説書
>Crispin Goswell
>Microsoft Office Product Unit
>1995年 春
>1995年9月13日改訂
URLリンク(msdn.microsoft.com)
>抄録
>この解説書は、
>Microsoft(r) OLE Component Object Model(COM)オブジェクトを作成し、
>効果的に使用する方法を説明しています。
>例文はほとんどCで書かれていますので、実際に何が行われているかが、大変分かりやすく示されています。
>プログラマの中には、オブジェクトを実行するためにC++を好んで使用する人もいるでしょう。
>C++プログラマの観点からCOMの概念および基本的な使用法を論じているのは
>Kraig Brockschmidt著のInside OLE (第2版)(MSDN Library(Books))です。
>COMとは何か、またその設計や哲学の後ろにある動機付けをより理解する事に興味がある読者なら、
>Component Object Model Specification(MSDN Library(Specifications))の最初の2章を読んでください。
>第1章には簡単なイントロダクションを、第2章では徹底的に概要を解説してあります。
>この解説書ではInside OLEとCOM Specificationにある情報を、
>COMオブジェクトを実装する良い方法をいくつか示しながら解説するようにしてあります。

191:デフォルトの名無しさん
08/04/23 23:20:56
comモデルまんせー

192:デフォルトの名無しさん
08/04/24 18:28:15
agennnahage


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch