トップページ⇒tech
49コメント13KB

COM・DCOM研究室

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
さあ、皆で研究するぞ
0002名無しさん@お腹いっぱい。NGNG
では最初の質問。
COmって何ですか?
0003>2NGNG
tinyモデルで作られた、DOSプログラムの拡張子です。
0004名無しさん@お腹いっぱい。NGNG
DCOM はドコモ?
0005名無しさん@お腹いっぱい。NGNG
■■■■終り■■■■
2chらしい研究成果だったな。(藁
0006Dr.URINGNG
さ、ちゃんと研究するですよ!
0007名無しさん@お腹いっぱい。NGNG
しんぐるとーん!!!
0008DDiNGNG
COM=彼方の秘密、守ります。
00092NGNG
では次の質問。
DDE@` OLE@` OLE2@` COM@` DCOM@` ActiveX@` OCX@` DLLの違いって何ですか?
0010名無しさん@お腹いっぱい。NGNG
つーかCOMってだめだろ。
COMを作るとして第三者のプログラマ相手でしょ。そんなの作りたくないし。
使う側として、内部で何やってるのか分からないから、呼び出しタイミング
とかが良く分からないし。

参照カウンタなんて1個狂ったら全滅だし。
個人とか社内でやるならDLLで十分だし。
0011>10NGNG
>COMを作るとして第三者のプログラマ相手でしょ。
>そんなの作りたくないし。
有用なCOM作るのはMSとかのメジャーなところだから、
アンタは作らなくていいの。

>内部で何やってるのか分からないから
アンタOOP嫌いでしょ(プ
001210NGNG
>11
技術板なんだからもっとまじめな返事してよ。
0013名無しさん@お腹いっぱい。NGNG
>10
確かに、参照カウントが狂っちゃうと厄介だねぇ。
0014名無しさん@お腹いっぱい。NGNG
>>10@`>>13
参照カウントは簡単に狂う物なんですか?
0015名無しさん@お腹いっぱい。NGNG
狂わない実装が存在しないってことなら、確かに使えないですね。
レジストリでの一元管理も頂けないし…。
0016名無しさん@お腹いっぱい。NGNG
COMはちゃんと動きますけど、DLLでだめな理由もないですね。
レジストリでの一元管理も頂けないですが、ファイルシステムが管理するのが
いいのかも難しいところです。
個人的には、ファイル管理でいいと思ってますが・・・
0017名無しさん@お腹いっぱい。NGNG
基本的な質問なんですけど、宜しくお願いします。
COMをコンパイルしたときレジストリに自動的に登録されますよね。
自分のマシンでそのCOMを使う時は登録済みだから自由に使えるけど、
そのCOMを含むdllを他のマシンに持っていっても使えるのですか?
登録してないから使えないと思うのですが、どうやったら登録できるのですか?
0018>17NGNG
regsvr32.exeを使ってちょ。
0019お嬢NGNG
>17
ATLの場合、実行時にIDが登録されているか調べに行って、
登録されてなかったら、リソースを元に登録しに行くって
方法をとってるんじゃなくって?
リソースを見るとregファイルと似たリソースがありましてよ。
002017NGNG
>>18
サンキュー。

また質問です。
microsoftのCOMがいっぱい入ってますが、
自作のアプリケーションに組み込むと
便利だったり、おもしろいものってありますか?
いろいろ教えてください。
たとえばIEのブラウズ機能(HTMLソース持ってきてウィンドウにレンダリング)を
組み込むこととかできると思うのですが、どのCOMを使えばいいのですか?
0021お嬢NGNG
>>20
IWebBrowser2なんてどうかしら?
C@`C++なんかでカスタムインターフェイスを使用して
使うつもりなら、殺人的な労力が必要ですわよ♪
0022名無しさん@お腹いっぱい。NGNG
command.comはどうよ?
002318>20NGNG
shdocvw.dllだよん。
0024名無しさん@お腹いっぱい。NGNG
falcomはどうよ?
0025名無しさん@お腹いっぱい。NGNG
あのー、>>14の質問に誰も答えてくれないのは何故ですか?
0026名無しさん@お腹いっぱい。NGNG
もう一回書きます。
>>10@`>>13
COMの参照カウントは簡単に狂う物なんですか?
0027名無しさん@お腹いっぱい。NGNG
>25
簡単に狂うよ。Release()を1回呼び忘れれば言いだけ
だから。
0028名無しさん@お腹いっぱい。NGNG
>>25-26
少ししつこい。
質問すれば必ず教えてもらえると考えるのは止めましょう。
0029名無しさん@お腹いっぱい。NGNG
>>27
>簡単に狂うよ。Release()を1回呼び忘れれば言いだけ
これってプログラマの方が悪いって事ですか?
0030名無しさん@お腹いっぱい。NGNG
どう転んでもプログラマが悪いのは事実
0031名無しさん@お腹いっぱい。NGNG
>>29
言い足りてなかった。
>これってプログラマの方が悪いって事ですか?
正しくは、
これってプログラマのコーティングの仕方が悪い場合、って事ですか?
です。

つまり、COMの設計上の問題で、リファレンスカウンタの仕様に穴か
何かがあると思える書込みだったので。>10@`13

>>28
22=23=24の様なつまんないカキコよりは随分マシだとおもいますが。
0032名無しさん@お腹いっぱい。NGNG
参照カウントの管理にプログラミングのかなりの
時間が費やされるのにも問題あるでしょ。
0033名無しさん@お腹いっぱい。NGNG
スマートポインターだっけ?あれを使えばReleaseとか気にしないでよかったと思う。
0034名無しさん@お腹いっぱい。NGNG
>31
プログラマが参照カウントをインクリメント
もしくは、デクリメントし忘れただけ。
だからプログラマが悪い。
設計上に穴があるわけでは無い。
0035名無しさん@お腹いっぱい。NGNG
>>34
わかりました。
有難うございます。
0036名無しさん@お腹いっぱい。NGNG
COMもしくはDCOMって、ATLとMFCどっち使って作ったほう
がいいんだろう?
0037名無しさん@お腹いっぱい。NGNG
ローカルサーバーまたはリモートサーバにアクセスしてる
クライアントがあるとして、このクライアントが強制終了
した場合、つかんでたインタフェースはちゃんと開放されるの?
0038名無しさん@お腹いっぱい。NGNG
Microsoftはそのうち自らCOMを葬り去る
0039DrURINGNG
>>36
COMはATLとMFCという比較はしないんですよ、
比較するとすれば、ATLと非ATLかな?
ATLと非ATLはMFCと非MFCの関係に思いがちだけど、
COMに関しては、ATLでVCのウィザードを使用して
作成するのが現実的だと思うの。
非ATLでCOMは作業量や全体の把握がとても困難じゃないかしら・・・

>>38
MSのビジネスソフトのコアはすべてCOMだと思うんだけどな・・・
0040名無しさん@お腹いっぱい。NGNG
IDLってなんの略ですか?
0041名無しさん@お腹いっぱい。NGNG
>40
CORBAの話?

I インタフェイス
D 宣言
L 言語
0042名無しさん@お腹いっぱい。NGNG
>>41

WindowsのRPC(DCE RPCの亜流)もIDLを使う
0043名無しさん@お腹いっぱい。NGNG
>>39
.NET
0044Dr.URINGNG
IDLは、
Interface
  Design (技術評論社からの書籍より)
  Description (翔泳社からの書籍より)
  Definition (MSDNに収録されているCOMのコラムより)
    Language
などいくつも定義の説明があってね、
URIもどれが正しいのかわからないのよねー。(知ってる人がいたら教えてちょうだい!)

IDLっていうのはね、COMのインターフェイスを定義する言語なの。
ここで言うインターフェイスはVBのメソッドやプロパティの事を指すのね、
あと、イベントで呼び出される関数も含まれるのよ。

ちなみにCOMが一般的にクラスで扱えるのは、ここでクラスとして使えるように
定義してあるからなのよ♪

さわりだけだけど、少しはわかったかしら?
それじゃ、がんばってね。
0045名無しさん@お腹いっぱい。NGNG
一番新しいRFCでUniform Resource Identifierって書いてあるからそれでいいんじゃないかな。
Universalはobsoleteされたのか?
でも、URLはともかくUniversal Resource Identifierという言葉はRFCにでてきてないような気もするけど。
詳細きぼ〜ん。
0046名無しさん@お腹いっぱい。NGNG
VBなどから
CreateObject()で起動できるEXEをMFC作ろうと思うのですが、
どうすればいいのでしょうか?教えてくださいませ。
0047名無しさん@お腹いっぱい。NGNG
VBなどから
CreateObject()で起動できるEXEをMFCで作ろうと思うのですが、
どうすればいいのでしょうか?教えてくださいませ。
0048名無しさん@お腹いっぱい。NGNG
>>47
ATL COM Wizardでスケルトン作る。
スケルトン作った後途方に暮れるようだったらまず書籍買い漁れ。

個人的には、今COMそのものを勉強するのはお勧めしないけど。
煩雑すぎてちっとも面白くない。既存コンポーネント利用する分には
便利だけどね。作るのは.NET待ち。
004947NGNG
>>48
わかりました。やってみますぅ。
■ このスレッドは過去ログ倉庫に格納されています