トップページ⇒tech
986コメント350KB

COM の世界を斬る!

■ このスレッドは過去ログ倉庫に格納されています
0001IUnknownNGNG
ATL や MFC でラッピングされていない素顔の COM について語り合いましょう。
0331デフォルトの名無しさんNGNG
つかな、Socketつかって書くにしても、listenしているポートを
どうやって広告するんだよ。
固定か?/etc/serviceか?ロケータサービスか?
いずれにしてもおめでてーな。
0332デフォルトの名無しさんNGNG
>>331
COMだってそこらへんはしょぼいじゃん(w
0333デフォルトの名無しさんNGNG
ちなみに俺は固定だけどね
0334デフォルトの名無しさんNGNG
たとえばWord.ApplicationをどうやってSocket化するのか、教えれ。

君の話を聞いていると、Inner-Networkなのばっかりやん。
COMのInner-Process, Inner-Machineな部分は無視ですか(w
0335デフォルトの名無しさんNGNG
>>330はヴァカなので放置してください。
0336デフォルトの名無しさんNGNG
XMLってファイル形式の一つという使われ方のほかに
SOAPでやりとりするデータ形式という認識であってる?
結局ここで話しているのはsocket vs COMじゃなくSOAP vs COMなわけ?
SOAPよく知らないから変なこと言ってたらすまん。
0337デフォルトの名無しさんNGNG
>>336
あってない。SOAPとCOMは関係ない。この文脈のXMLってのは単にアフォが
勘違いしてるだけ。
0338336NGNG
>>337
> XMLってファイル形式の一つという使われ方のほかに
> SOAPでやりとりするデータ形式という認識であってる?
↑これも間違い? これが間違い?
0339デフォルトの名無しさんNGNG
>338
XML InfoSetについて調べてみよう。SOAPは<>じゃないよ。
0340デフォルトの名無しさんNGNG
>>339
よくわからんが、分かった。XMLとSOAPについて調べる。ありがと。
0341デフォルトの名無しさんNGNG
>COMのInner-Process, Inner-Machineな部分は無視ですか(w
ごめん無視してた。
開発者側から見て、というつもりだったので

>>337
比喩がわからんおまえがアフォ
つーか、COMのリスクが分かってないのか?
0342デフォルトの名無しさんNGNG
>>341
おまえ、>327じゃねーの?どこが比ゆなんだ?比ゆってなんだかわかってないだろ?
0343DCOM使っている人いるの?NGNG
DCOMでリモートのオブジェクトユーザが死んだ場合って、
オブジェクトの参照カウントってどうなるんだ?
ちゃんとIUnknown::Release()されるの?
Releaseされないで放っておかれると、
オブジェクトユーザが死ぬたびにオブジェクトが
放置されるから、ちゃんとReleaseされるんだよね。(たぶん)
0344デフォルトの名無しさんNGNG
>>343
Releaseされる。DCOMは分散GC実装してるから。
0345デフォルトの名無しさんNGNG
>>344
たぶん、GCできるかどうかどうやって判断するんだ?
ってことだと思うが
0346デフォルトの名無しさんNGNG
>>345
Ping。
0347デフォルトの名無しさんNGNG
>>346
嘘だろ?いくらマイクロソフトだからってそんなことは・・・
0348デフォルトの名無しさんNGNG
ICMPじゃないぞ、言っとくけど。
0349DCOM使っている人いるの? NGNG
>>344 Thanks!

そうそうおもいだした。
MSKBのQ171414にこれのメカニズムと停止方法が書いてある。
PINGを使って生存確認している。当然、誰がどのオブジェクトの
ポインタを持っているのか、AddRefしているかを管理しているわけだ(はずだ)
でオブジェクトユーザが異常死亡すると
その人がAddrefした分、Releaseされるわけだ。で合っているよね。

ということは
IConnectionPoint::Adviseしたオブジェクトが死んだ場合も
IConnectionPoint::Unadviseされるんだよね。

ほかにもIOleObject::AdviseやIDataObject::DAdviseもそうだよね。

それともAdviseしているオブジェクトのメソッドを呼んで
RPC_E_FAULTにでもなったら自分でUnadviseしなければならないの?
0350デフォルトの名無しさんNGNG
DCOMに限るけど COMPLEX PINGとか使って定期的にオブジェクト
が生きているかどうか調べているんじゃなかったでしたけ?

あと、Proxy/StubでAddRefやReleaseも最初と最後しかネットワークに
送信しない様に最適化してるって話も聞いた事がある。

システムでウマーくやってくれてるんじゃないでしょか?
0351DCOM使っている人いるの? NGNG
最適化?なるほど。やっていそうだね。
QueryInterfaceの非効率さに気がついて、
MULTI_QI構造体を用意したくらいだから
0352デフォルトの名無しさんNGNG
IRemUnknown。
0353デフォルトの名無しさんNGNG
>>352
そうですね。そっちの方が詳しく書いてある。

で、Adviseの件はどうなんでしょう?
だれか教えてください。自動的にUnadviseされるなんてやっぱり甘い?
自動的でなければ、せめて、死んだことが死んだ時点か
それに近いタイミングで通知されるような仕組みがあると楽なんだけど。
0354デフォルトの名無しさんNGNG
COMアプリってメモリリークしまくるのが多いけどなんで?
0355デフォルトの名無しさんNGNG
MSが作ってるからでしょ?
0356デフォルトの名無しさんNGNG
どこが作ればメモリリークしませんか。
0357デフォルトの名無しさんNGNG
それはキャッシュです、とか言い張る?(w
0358デフォルトの名無しさんNGNG
なんつーか、VARIANTあたりの設計で、C++みたいな
コンストラクタ/デストラクタ持ってる言語でも
うまく破棄されない場合があった気がする。
0359John ◆0z.4Is5E NGNG
>>356
酸
0360デフォルトの名無しさんNGNG
自分のバグを人のせいにすんな、見苦しい。
0361デフォルトの名無しさんNGNG
>>360
それじゃ話が終わっちゃうじゃん
0362デフォルトの名無しさんNGNG
>>360
禿同
0363デフォルトの名無しさんNGNG
禿同、とかいってるやつは理解してないだけ。
0364デフォルトの名無しさんNGNG
>>363
禿同
0365デフォルトの名無しさん NGNG
実行時のエラーは起きる可能性はいつだってあるから、
バグとも言い切れない
0366デフォルトの名無しさんNGNG
>>365
確保できた資源が、解放時にエラーになる?
それはどのシステムのどんな資源でしょうか?
0367デフォルトの名無しさんNGNG
>>366
禿同
0368デフォルトの名無しさん NGNG
スマートポインターとスコープ
参照カウンター
0369デフォルトの名無しさんNGNG
COMは巨大なオープンソースプロジェクトであるMozillaに採用されているYO!
0370デフォルトの名無しさんNGNG
>>369
まぁた路線変更に迫られるのですが?
0371デフォルトの名無しさんNGNG
路線変更?
0372デフォルトの名無しさんNGNG
Mozilla使ってる奴はCOMに感謝するべき
0373うぴゅNGNG
LinuxやMac OSのMozilla使ってる奴は誰に感謝すべき?
0374デフォルトの名無しさんNGNG
>>373
Mozillaのソース見たことないのか...
0375デフォルトの名無しさんNGNG
ここは悲惨は373の居るスレってことで
0376デフォルトの名無しさんNGNG
XPCOMなんてCOMの足元にも及ばんだろ
inner-processだけだし
http://www-106.ibm.com/developerworks/webservices/library/co-xpcom.html
0377デフォルトの名無しさんNGNG
禿同
0378デフォルトの名無しさんNGNG
>>366
ヒープが壊れたときとか。
0379デフォルトの名無しさんNGNG
>>349
Unadviseされるわけがない。
理由:Proxy/Stubがそこまで考慮していないから。
0380デフォルトの名無しさんNGNG
>で、Adviseの件はどうなんでしょう?
>だれか教えてください。自動的にUnadviseされるなんてやっぱり甘い?

カメレスで済まないけど、Adviceつーても、
単に内部で参照カウントとインターフェースのポインタ
持ってるだけだということを考えませう。

クライアントが落ちてもサーバーが落ちても、
DCOMがRelease( )してくれるのなら
メモリリークはとりあえず発生しない。
0381380NGNG
ただし、
Unadviceはもちろんやってくれないので、
接続のはがれたインターフェースポインタがいつまでも居座ることにはなる。

DCOMがどんな風にRelease( )するかによるけど、安全性の観点から見て、
多分落ちることはないのではないかと思う。
(使うと常にエラーを返すようになると思うが)

ほんとは、そのあたりでエラーを検出したらインターフェースを取り外すように
Proxy/Stubを吐いてくれると無駄が無くていいのだけど。
そこまではしてくれていない。

VC++のウィザードが作るコードは、大雑把にはvectorでインターフェースを複数
保持して、それらをお構いなしにコールしているだけだと思った。
(エラーが返るからまあいいじゃねーか、という考えなのかな?)
0382デフォルトの名無しさんNGNG
メモリリークするかしないかは実装の仕方により。

ATLのIConnectionPointの実装だと(純粋なCOMというスレの趣旨だがサンプルということで)
Adviseしたオブジェクトのシンクインタフェースへのポインタを固定長の配列で保持している。
だからUnadviseし忘れたオブジェクトがいくつもあってもそのうち、保持しきれなくなる。
あとからAdviseしてきてもCONNECT_E_CANNOTCONNECTと返すほか無くなる。

人によってはIConnectionPointの実装を可変長配列やリストで管理していたりする。
そうなるとおそらくヒープにとるので、Unadviseされないとメモリリークになる。

よくありがちなのが、クライアントが死んでものだからしょうがなく再起動するを繰り返したりする場面。
クライアントが異常終了から再起動するたびに、どんどんメモリリークするかAdvise可能な回数が減る。
DCOMをつかってサーバーから接続しているクライアントに一斉にイベントを投げるようなシステムは気をつけたほうがいい。

こんな状況でもAdviseを受け付けられるようにメモリリーク覚悟でヒープからとるか
固定長の配列で、あふれるようなら拒否するかどっちが良いか悪いかわからんが問題があることは確かだ。
(俺としてはAdvise可能な回数は制限したほうがいいと思うけど)

というわけでイベント送出時にRPC_E_なんとかとなったら自分でUnadviseするのが無難だろ。

VBは自分でUnadviseなんかできないな。
VB屋さんが、DCOMで簡単にサーバークライアントシステムが組めるや、
ちょちょいのちょい。なんて調子で安易にDCOMを使って、
しまいにはどうしたらいいかわからなくなる。

これでもWindowsDNA(死語)の基幹テクノロジーなんだがね。
0383デフォルトの名無しさんNGNG
っていうかDCOMベースのシビアな環境でIConnectionPointなんか使うほうが間違い。
0384デフォルトの名無しさんNGNG
DCOMを使う=シビアな環境なのか。
0385デフォルトの名無しさんNGNG
>っていうかDCOMベースのシビアな環境でIConnectionPointなんか使うほうが間違い。
おいおい、リモート・ローカル等価性はどうなったんだ?
IConnectionPointはリモートで使ってはいけないから
リモートとローカルで等価ではないってことだな。
実はリモートに限らずローカルサーバーもやばいんじゃないか?ということで等価か。

とIConnectionPointひとつを重箱の隅を突くように取り上げて煽ってもしょうがないが
現実問題として、IConnectionPointに限らず、リモートオブジェクトから
インタフェースを渡されるような場面は気をつけたほうがいい。
渡してきた相手がこそっり死んでいるようなこともあるんで。
0386デフォルトの名無しさんNGNG
>>382
VBはUnadviseを勝手にやってくれたりはしないのかな?
0387デフォルトの名無しさんNGNG
>>384
そうではない。ここで問題になっている程度の、それなりにそれなりが要求される環境で、
しかもDCOMを使っている場合ってこと。

>>385
Effective COM読んでね。
9. Avoid connection points
0388デフォルトの名無しさんNGNG
はげ
0389デフォルトの名無しさんNGNG
#別のところから流れてきました。

VCでCOMつくってVBScriptから使おうと思ったんですが、
VBScriptに2つ以上の返り値を戻す方法がわかりません。
つまるところ、
 Set Hoge = CreateObject("Hoge.Hoge")
 Status = Hoge.Func(InVal, OutVal, OutVal2)
 IF OutVal = "aaa" And OutVal2 = "bbb" Then
みたいな設計はできないんでしょうか?
0390デフォルトの名無しさんNGNG
>>389
できません。VBScriptの制限事項です。
0391389NGNG
>>390 どうも。
がっくし。SAFEARRAYとVARRANTつかって配列で受け渡しするしかないか・・・
0392デフォルトの名無しさんNGNG
COMでプロパティって設定しますよね。たとえば、
COM側(VC):
[propget, id(10), helpstring("プロパティ RemoteHost")] HRESULT RemoteHost([out, retval] BSTR *pVal);
[propput, id(10), helpstring("プロパティ RemoteHost")] HRESULT RemoteHost([in] BSTR newVal);

クライアント側(VBscript):
Hoge.RemoteHost = "myhost"

みたいな。

でこの場合、getやputでエラーとなった場合の処理ってどう実装すればいいんでしょうか?
とくにputの場合エラーとなってもクライアントは判定できないです。
0393デフォルトの名無しさんNGNG
なんの為にHRESULT返してるんだ。
0394デフォルトの名無しさんNGNG
スクリプト側でエラーを検出したいって事だろ
0395393NGNG
クライアントか。すまん。
VBSならON ERRORで処理するんちゃうんか?
それともVBSはput時のエラーは無視する仕様なの?
0396ななしNGNG
えっと、初歩的な質問かもしれませんが・・・。

VBからオートメーションでExcelを操作するのに、事前バインドと実行時バインドでどのくらい
レスポンス差があるのか気になって、

(1) 事前バインドで Dim .... As New Excel.Application
(2) 事前バインドで Dim .... As Excel.Application → Set .... = New ... でインスタンシング
(3) 事前バインドで Dim .... As Excel.Application → Set .... = CreateObject ... でインスタンシング
(4) Dim .... As Object → Set .... = CreateObject ... で実行時バインド

の4通りを比較してみたところ、(4)が一番速いという、予想外(常識はずれ)の結果となってしまい
ました。(ベンチマークの内容は、DAOのRecordsetをExcelに出力する、というもの)

COMの解説書には、事前バインドの方が高速と書いてありますが、どうして期待した結果にならないの
でしょうか?

ちなみに、インプロセスサーバを参照してコンパイルしたEXEを該当するコンポーネントがレジスト
されていない端末で起動するとプロセスが起動せずにクラッシュしますが、上記(1)〜(3)のEXEを
Excelがインストールされていない端末で起動しても、エラーにならずに正常に起動してしまいます。(無論、オートメーション機能は動きませんが)
インプロセスコンポーネントと、アウトプロセスコンポーネントでは、バインドの仕組みが違うの
でしょうか?

ご存知の方、コメントお願いします。m(_ _)m

0397ななしNGNG
>>396

環境は、VB6.0 SP5 + Excel8.0 SR-2 です。

Windows 98 / NT4.0 ws SP6
のどちらでも、

> (4) Dim .... As Object → Set .... = CreateObject ... で実行時バインド

が最速でした。
0398デフォルトの名無しさんNGNG
速いというのが具体的に何の時間を測ったのか書け。
0399ななしNGNG

>>398

ソースが現在手元に残ってないのでアレですが、50000件のレコード(DAO.Recordset)を
セルに出力する時間を計測しました。
インスタンス化 → Nothing までの時間です。
無論、現実的には、二次元配列を使うなり、CopyFromRecordsetメソッドを使えば一発の
処理なのですが、メソッドやプロパティの参照回数を増やさないと明確な差が検出でき
ない?と考えたので、1件ずつループしてます。
0400デフォルトの名無しさんNGNG
>>399
ケース毎にプログラム終了した?
exeにコンパイルして試した?
ケース毎にマシン再起動した?
0401デフォルトの名無しさんNGNG
おおよそ
 (総時間) = (一件当たりの時間) * (件数) + (定数)
になるから
件数を変化させたときの時間の変化を見れば、
もう少し分かったと思うんだがなあ・・・

ソースコードがないんじゃあもう無理か。
ちなみにそれぞれの時間を覚えてない?
0402ななしNGNG
>>400

当然、IDEではなく、EXEでテストしてますし、プログラムも1回毎に立ち上げ
直しました。マシンのリブートまではしてませんが。(やるべきでした?)
それと、レスポンスの計測にTimer関数を使用したので、測定誤差はあるかも
しれません。でも、誤差が出るのは、(1)〜(4)までおなじ条件なので、(4)に
だけ有利に働くなんてことはないですよね?
0403ななしNGNG
>>401

ソースがないのは、今、実家に帰ってるから(^-^;で、自分とこのマシンにはちゃんと
あります。(件数をもう少し増やせば、というのはちらっと思いました)

ちなみに、このベンチマークをやったのは、昨年の9月頃です。
実行時バインドの方が高速だなんて、気でも違ったかと思われそうで、技術系のMLやBBS
に上げるのを躊躇してました・・・。
0404デフォルトの名無しさんNGNG
>>399
>ちなみに、インプロセスサーバを参照してコンパイルしたEXEを該当するコンポーネントがレジスト
>されていない端末で起動するとプロセスが起動せずにクラッシュしますが、上記(1)〜(3)のEXEを

CreateObjectでコケてるんですな。

>Excelがインストールされていない端末で起動しても、エラーにならずに正常に起動してしまいます。(無論、オートメーション機能は動きませんが)

こっちは、めそっど、ぷろぱてぃの情報がコンパイル時に解決されますね。
0405デフォルトの名無しさんNGNG
ソースあるんなら試せるね。よかった。

厳密に言うなら、ディスクキャッシュなどの影響をなくすために、
同じテストを3回以上繰り返すべき。(1なら1を3回実行する)
これで生の処理時間に近づけるはず。

あと、プロパティやメソッドの実行レスポンスを調べたいのであれば、
計測開始時刻と計測終了時刻 を ループ開始直前とループ終了直後 に
置いたほうがいいね。

4にだけ有利に働く可能性としては
 a:単に最後に実行して、全部のデータがディスクキャッシュに乗っていた
 b:4のみ >>401 のいう定数部分が小さい(あるいは1〜3は定数部分が大きい)
などがあると思う。

ベンチマーク(理科でいうところの対照実験)の基本なので、
このへんを押えてないと厨房扱いされちゃうよ。
0406デフォルトの名無しさんNGNG
>>396
エクセルを操作するのでアウトプロセスでしかもDispatchインターフェイスのみ
でしょう。
どの方法でも測定誤差程度しか違わないのではないでしょうか。
0407ななしNGNG
>>405

ありがとうございます。

> b:4のみ >>401 のいう定数部分が小さい(あるいは1〜3は定数部分が大きい)
> などがあると思う。

その可能性はありそうですが、Excelの場合、行数に65536という制限があるので、
ベンチマーク方法をもう少し工夫した方がいいのかもしれません。

私的に気になっているのは、メモリ上の操作ではなく、ファイル出力の
レスポンステストなので、複数回実行すると環境が汚れることによる影響
があるんじゃないかと・・・?
0408ななしNGNG
>>406

ありがとうございます。

> エクセルを操作するのでアウトプロセスでしかもDispatchインターフェイスのみ
> でしょう。

インプロセスとアウトプロセスではバインド方法が違う、という理解でよろしいの
でしょうか?

使っている言語がVBオンリーな上、COMのメカニズムもあまり理解していないので、
このスレの話題についてくのはしんどいです・・・。(T_T)
0409デフォルトの名無しさんNGNG
よそのプロセスのCOMインターフェースにアクセスする方法はありませんか?
0410409NGNG
ちなみに、取得できる情報は、
対象のプロセスとインターフェースの型と、インターフェースへのポインタだけです。
CoCreateInstance()などで取得できるものではありません。
0411409NGNG
それから、できれば、ウインドウをフックしてcallするのは最後の手段にしたいです。
0412デフォルトの名無しさんNGNG
もうちょっと勉強してから出直せ。
0413デフォルトの名無しさんNGNG
COM関係のスレ2つとも職人さんたち対象なので、
お勉強レベルのスレがあってもいいかもね
0414409NGNG
>>412

1 そんなことできるわけねーだろ、ボケ
2 そんな簡単に実現できること、自分で調べろ ゴルァ

なのか、どっちなんでしょう?
それだけでもよろしくお願いします。
0415409NGNG
通常ポインタがプロセスを超えられないことは知ってます。
ただ、スタックトレースを見ると、たとえばドラッグ&ドロップなんかは
rpcrt4.dllなどを介してcallされているし、何か抜け道なりがあるのかもしれないと思って聞きました。

ちなみに、フックをかけてcallをする方法は試してみたところ成功しました。
0416デフォルトの名無しさんNGNG
>415
だから、マーシャリング、プロキシ/スタブ、スレッドモデルなんかに
ついてもっと勉強しろや。
他のプロセスにあるinProc COMサーバを(その、「ほかの
プロセス」を実行主体として)呼ぶのは、フックでもしないと無理。
そうでないなら、普通にCreateProcessから呼び出せば、
あとはole関連ライブラリが善処してくれる。
0417406NGNG
>>408
バインド方法とサーバのプロセス形態は直接は関係ないですよ。
バインド方法はVBのソースで型名でオブジェクトを扱うのか、
Objectで扱うのかの違いでしょ。
一般的にVBでいうところのバインドは、

参照を追加して型名で操作 == アーリーバインド
 開発時に型情報等を解析する
  サーバへのバージョン依存性は高くなるが
  開発時にエラーチェックできる
  またパフォーマンスはよい
object型で操作 == レイトバインド
 実行時に型情報等を解析する
  サーバへのバージョン依存性は低くなるが
  実行時エラーになる可能性もある
  またパフォーマンスはさがる

という事で >>396 でなぜレイトバインドが一番速かったのか
と疑問に思っているのではないでしょうか。
#ちなみにnewとCreateObjectはオブジェクトを作るときのみ
#違いがあるので受けた後の型しだいで上記と同じ。

バインド方法で著しくパフォーマンスがかわるのは
dualインターフェイスのインプロセスサーバを扱った
ときでしょう。アーリーバインドで開発時にIUnknown側の
メンバーを扱う様にコードが吐かれるのか、レイトバインド
で実行時にDispatchのInvoke経由でメンバーを扱うのかという。

たとえdualインターフェイスでもアパートメントに互換性が
あるインプロセスサーバ以外は直接サーバとは対話していない
ので注意が必要です。

しかし >>396 で検証した結果レイトバインドが速いというので
あれば、仮説ですがVBがDispatchのみのエクセルに対して
アーリーバインドするとエクセルを扱う仮想のエクセルオブジェクト
を作成しているとか、使用しないメンバー情報等も全て
取得してまうとか...そのぐらいでしょか。

結局エクセルを扱うときDispatchでInvokeするしかないわけだから
アーリーバインドする事でどのぐらいパフォーマンスに差がある
かといわれると「誤差ぐらい」と思われますが。
0418ななしNGNG
>>417

丁寧なコメント、ありがとうございます。m(_ _)m
残念ながら、私は勉強不足のようです。(VBユーザーは、COMを「使う」ことはあっても、
内部の仕組みは必ずしもしらなくても足りてしまう場合が多いので)

このスレの話題について行けるよう、いろいろ研究してみます。
ソフトウェアの動作原理や(隠蔽された)内部のふるまいに興味が大いにありますので。
0419DNGNG
Inside COM+ や Inside OLE ぐらいは読んどいたら?
0420デフォルトの名無しさんNGNG
>>419
たしか前者は入手困難じゃなかった? 
0421DNGNG
それは後者だね。ちなみに私は 177 のレスを読んで
速攻買いに行きました。ここまで高い本買ったのは初めてだったが
かなり勉強になるよ。入手出来なければ大きめの図書館で借りたりとかね。
家の近郊の図書館にはInside OLEはあった。まあ購入後知ったことだから
どうでもいいんだけどね。常に手元に無いと落ち着かないって言うのもあるし
損した気分にはならなかったね。今の学生さんならお金持ってるだろうし
そんなに負担ではないのでは?(いいかげんな推測ですが)
0422ななしNGNG
>>421

いちおう、ええ歳こいた社会人(0x20代)なので(にしては、厨房質問ですが(^-^;;;)、
本くらいは買えます。

「Inside COM+」ですね。
ありがとうございました。m(_ _)m
0423デフォルトの名無しさんNGNG
InsideOLEは駒場東大前の駅前の書店に野ざらしにされてボロボロの状態で、定価で売ってる。
俺が立ち読みしてるので、絶対に買うな。お長居します。
0424ななしNGNG
>>423
現在、東京在住ではない(地方に飛ばされました(T_T)ので、買えません・・・。
0425デフォルトの名無しさんNGNG
誰か俺にIMonikerをやさしく解説してください。
このインタフェース訳わからんです。

どう実装していいのかどう使っていいのか
何のためにいるのか、さぱーりわかりません。

ちなみにInsideOLE読みました。でもわかりません。
0426デフォルトの名無しさんNGNG
IMonikerはIClintonを陥れたりするために使います。
0427デフォルトの名無しさんNGNG
IMoniker に I はない。あるのは、ただ欲だけ(:´Д`)
0428デフォルトの名無しさんNGNG
うまいなぁ。
0429デフォルトの名無しさんNGNG
COM+ってこれからどうなるの?
良く分からないは、レジストリから切り離されるって噂。
それと、64bitVBが出ないんなら、64bitCOM+が出ないって事?
0430デフォルトの名無しさんNGNG
MFCをかじった程度の初心者です。教えてください
・COMってなんですか?入門ページありますか?
・COMって今後はどうですか?
■ このスレッドは過去ログ倉庫に格納されています