COM の世界を斬る!
■ このスレッドは過去ログ倉庫に格納されています
0001IUnknown
NGNG0281デフォルトの名無しさん
NGNGどうすればいいのでしょうか?
プールとリサイクルで呼び出し制限を1にしたのですが、いくらでも呼べてしまいます。
0282デフォルトの名無しさん
NGNG_bstr_t retVal = MyPointer->View();やなくて?
0283VBCOM
NGNGComのメソッドを呼ぶときはView()じゃなくてViewなんだあ、
となぜか勝手に思い込んでました。
ありがとうございました。
0284デフォルトの名無しさん
NGNGこの関数は対象となるVARIANT変数のAllocSysStringで確保したBSTRの開放や
DispatchなどのインタフェースのReleaseまでしてくれるんでしょうか?
0285284
NGNGメモリリークの原因になってしまうのでコワイです。
知ってる人いたらおね害します。
0286284
NGNG0287デフォルトの名無しさん
NGNGこんなとこで聞くのが間違い。
ちなみにおれは知らん。
0288284
NGNGえ?
じゃあどこで聞けば委いいですか?
0289デフォルトの名無しさん
NGNGThe function clears a VARIANTARG by setting the vt field to VT_EMPTY.
The current contents of the VARIANTARG are released first.
If the vt field is VT_BSTR, the string is freed.
If the vt field is VT_DISPATCH, the object is released.
If the vt field has the VT_ARRAY bit set, the array is freed.
0290284
NGNGありがとう。
でも英語なんで正確な意味がわからなかった。
つまり開放してくれるって事ですか?
0291デフォルトの名無しさん
NGNGそーでーす。
0292284
NGNGありがとう。
謎は全て解けた!
きみの様ないいやつが沢山いればこの板も安泰だね!
0293John ◆0z.4Is5E
NGNG確かにOSアップグレードする時に、DLL入れ替えるだけでできるのはいいと思うけど、
他になんかある?
0294デフォルトの名無しさん
NGNGすいません。ありませんでした。(゚∀゚)
0295デフォルトの名無しさん
NGNGIEやExcelが操作できるよ
まあ、そんだけかな。
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGつまり、ソケットが使えない
あるいはクソ言語しか使えないプログラマーのための
上級プログラマーの配慮という事ですな。
0299デフォルトの名無しさん
NGNGクリティカルな部分はCOMにして信頼できるやつに作らせて、
怪しいプログラマにはCOMクライアントの部分をVBとかでやらせるとか。
0300300
NGNG0301デフォルトの名無しさん
NGNG怪しいプログラマは何使わせても危険。
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGWindows壊されるぞ。
0306デフォルトの名無しさん
NGNGまじれすつけておこっと
既存インターフェイスと新規インターフェイスのどちらも持てるところ
じゃないかなあ。
ファンクションコードと ver x 以降使えます。みたいな API よりも
実際に必要なインターフェイスをもっているかどうか。
の方が即物的でイイカンジっしょ。
0307デフォルトの名無しさん
NGNGたぶんソケット云々って言ってるやつにとっては、そんなのソケットでできるじゃん、
ってことになるんだろうけど、ソケットとは思想が違う。ソケットにデータを送るのではなく、
相手のメソッドを呼び出すということ。それがマシン内でもマシン間でも透過的に
できることがメリット。
0308デフォルトの名無しさん
NGNGsocket使って書くのはだるい、ちゅうねん。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNGCOMの意味ない知識を詰め込むよりましだと思うが。
というか、COMにして良かったと思った例を教えて欲しいんだが。
俺はバイトなので、仕方なくCOM使ってるけど
COMが便利だと思える場面は経験してない。
まあ、あえて言えばASPしか使えない奴がプログラマーと名乗ってる組織で
仕事する時は便利だな(w
0311デフォルトの名無しさん
NGNGお前はDQN。
0312デフォルトの名無しさん
NGNGじゃぁ、今使っているCOMの機能をすべてsocketで実装してください。
まぁ君が今使っている機能ぐらいなら作れるだろうな、
どうせ関数呼び出し程度しか使ってないだろうから。
それに、バイト君は暇だからいいけど、プログラマはそんな
低レベルな実装を時間をかけてわざわざやらないのだよ。
0313デフォルトの名無しさん
NGNGsocketでは無くCOMにして良かった例
・COMならsocketで書かなくてならない面倒くさい処理を書かなくてすむ
socketで出来ない処理があるかって言うとそれを探すのは難しい。
しかし、問題はそこじゃないんだよ。
問題は今作っているものにどっちがふさわしいかってこと。
C++でやれることは全てアセンブラでも実現可能だろ。
しかしアセンブラを使用することは少ない。その理由と同じさ。
0314デフォルトの名無しさん
NGNGもしかして、COMを使わないで似たようなことやるには
自前でプロセス間通信して〜って話ですか?
0315デフォルトの名無しさん
NGNG涙が出ます
0316デフォルトの名無しさん
NGNG上げてくれる方法が、いまやいろいろ(COM/CORBA/RMIなど)あるっつうのに、
未だにsocketでなんでもやろうとする奴は、究極の車輪再発明野郎だとおもう。
しかもそういう奴は、どういうわけかそのことにプライドを持っている。なんでだ?
0317デフォルトの名無しさん
NGNGネットワーク層やデータリンク層に手を入れられるからでしょ。
0318デフォルトの名無しさん
NGNGCOMじゃなくてDCOMだろ
0319デフォルトの名無しさん
NGNG総称っつーことで
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGそんな必要があることは、あまりないと思うが…
セキュリティ関係でプレゼンテーション層を変更する必要があることは
多いけど、こういった機構を使っていても、それは可能だしね。
0322デフォルトの名無しさん
NGNG環境変数よりはマシだと思う。っていうかCLASSPATH逝ってよし。
0324デフォルトの名無しさん
NGNGはぁ?
GUIDはむしろ歓迎だろ。
本当にUniversal Uniqueだとしたら
0325デフォルトの名無しさん
NGNG0326鯛焼きクン
NGNG合意がなければ何も作れない。その決め事をフレームワークって
いうかどうかは別としても、おれはその意味をそう捉えている。
COMを使いましょうって決まったのなら、可能な限りその範囲内で
問題を解決しようっていうことだから、もしSocketで十分なものだと
判明しても、間違っているのは最初の合意(COMの採用)であって
COM自体の優劣の話じゃない。
0327デフォルトの名無しさん
NGNGソケットでやっても、COMでやってもかかる時間はそんな変わらんよ。
>しかしアセンブラを使用することは少ない。その理由と同じさ。
ネタ?(w
COMの位置付けが全然わかってないようで・・・・
COMとソケットの関係が,C++とアセンブラだってさ(w
>未だにsocketでなんでもやろうとする奴は、究極の車輪再発明野郎だとおもう。
なぜ?
俺はソケットの方が、短時間でできる例しか知らないから、
ソケットでやった方が優れていると主張してんだけど。
車輪の再発明とかほざく奴は、どういうわけかそのことにコンプレックスを持っている。なんでだ?
>上げてくれる方法が、いまやいろいろ(COM/CORBA/RMIなど)あるっつうのに、
そういう奴に限ってXMLは重いと言う罠
まあJavaだけ使うなら、RMI便利だけどね。
どーせ、おまえらIDLすらよくわかってないんだろ。
で、結局COM使って良かった例は
・ASPしか使えない奴がプログラマーと名乗ってる組織で仕事する時
だけなんだね。
0328デフォルトの名無しさん
NGNG> ソケットでやっても、COMでやってもかかる時間はそんな変わらんよ。
どんなことをやっているのか教えてください。
0329デフォルトの名無しさん
NGNG> ソケットでやっても、COMでやってもかかる時間はそんな変わらんよ。
「時間は変わらん」というだけなら誰でもできるよ。たとえそれがウソでも。
実例をあげなさい。
> COMの位置付けが全然わかってないようで・・・・
> COMとソケットの関係が,C++とアセンブラだってさ(w
あなたの意見は? COMの位置付けを説明してよ。 笑うだけなら誰でもできるからさ。
> 俺はソケットの方が、短時間でできる例しか知らないから、
> ソケットでやった方が優れていると主張してんだけど。
そりゃソケットの方が短時間でできるならソケットを使うよ。
じゃぁソケットで時間がかかるときはどうするの?
ソケットの方が、短時間でできる例しか知らないのね。
> 車輪の再発明とかほざく奴は、どういうわけかそのことにコンプレックスを持っている。なんでだ?
「そのこと」ってどこにかかっているの?
> そういう奴に限ってXMLは重いと言う罠
なんでいきなりXMLが出てくるの。だれもそんなこと言ってないでしょ。反論になってないよ。
> で、結局COM使って良かった例は
> ・ASPしか使えない奴がプログラマーと名乗ってる組織で仕事する時
なんでASPなの? ウソならだれでも言えるからさ、根拠を言いなって。
的外れな意見ばかりだね。もう少し日本語勉強して出直してきなさい。
0330デフォルトの名無しさん
NGNGそういうことだから、教えてくれって言ってるんだよ。
で、短時間でできる例がわかってると認識されてるわけだから、
実例挙げなくてもいいのか?
>なんでいきなりXMLが出てくるの。
逝ってよし
329はえらそうな事言ってる割には、知識乏しいみたいだね(w
実例挙げろ、とか根拠とかさ
結局おまえ何もわかってないだろ。
ASPとVBに訂正して欲しいか?
>的外れな意見ばかりだね。もう少し日本語勉強して出直してきなさい
ストレートに書かなきゃわからん奴は、
´_ゝ`<<ひっこんでろ!!
0331デフォルトの名無しさん
NGNGどうやって広告するんだよ。
固定か?/etc/serviceか?ロケータサービスか?
いずれにしてもおめでてーな。
0332デフォルトの名無しさん
NGNGCOMだってそこらへんはしょぼいじゃん(w
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG君の話を聞いていると、Inner-Networkなのばっかりやん。
COMのInner-Process, Inner-Machineな部分は無視ですか(w
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNGSOAPでやりとりするデータ形式という認識であってる?
結局ここで話しているのはsocket vs COMじゃなくSOAP vs COMなわけ?
SOAPよく知らないから変なこと言ってたらすまん。
0337デフォルトの名無しさん
NGNGあってない。SOAPとCOMは関係ない。この文脈のXMLってのは単にアフォが
勘違いしてるだけ。
0339デフォルトの名無しさん
NGNGXML InfoSetについて調べてみよう。SOAPは<>じゃないよ。
0340デフォルトの名無しさん
NGNGよくわからんが、分かった。XMLとSOAPについて調べる。ありがと。
0341デフォルトの名無しさん
NGNGごめん無視してた。
開発者側から見て、というつもりだったので
>>337
比喩がわからんおまえがアフォ
つーか、COMのリスクが分かってないのか?
0342デフォルトの名無しさん
NGNGおまえ、>327じゃねーの?どこが比ゆなんだ?比ゆってなんだかわかってないだろ?
0343DCOM使っている人いるの?
NGNGオブジェクトの参照カウントってどうなるんだ?
ちゃんとIUnknown::Release()されるの?
Releaseされないで放っておかれると、
オブジェクトユーザが死ぬたびにオブジェクトが
放置されるから、ちゃんとReleaseされるんだよね。(たぶん)
0344デフォルトの名無しさん
NGNGReleaseされる。DCOMは分散GC実装してるから。
0345デフォルトの名無しさん
NGNGたぶん、GCできるかどうかどうやって判断するんだ?
ってことだと思うが
0346デフォルトの名無しさん
NGNGPing。
0347デフォルトの名無しさん
NGNG嘘だろ?いくらマイクロソフトだからってそんなことは・・・
0348デフォルトの名無しさん
NGNG0349DCOM使っている人いるの?
NGNGそうそうおもいだした。
MSKBのQ171414にこれのメカニズムと停止方法が書いてある。
PINGを使って生存確認している。当然、誰がどのオブジェクトの
ポインタを持っているのか、AddRefしているかを管理しているわけだ(はずだ)
でオブジェクトユーザが異常死亡すると
その人がAddrefした分、Releaseされるわけだ。で合っているよね。
ということは
IConnectionPoint::Adviseしたオブジェクトが死んだ場合も
IConnectionPoint::Unadviseされるんだよね。
ほかにもIOleObject::AdviseやIDataObject::DAdviseもそうだよね。
それともAdviseしているオブジェクトのメソッドを呼んで
RPC_E_FAULTにでもなったら自分でUnadviseしなければならないの?
0350デフォルトの名無しさん
NGNGが生きているかどうか調べているんじゃなかったでしたけ?
あと、Proxy/StubでAddRefやReleaseも最初と最後しかネットワークに
送信しない様に最適化してるって話も聞いた事がある。
システムでウマーくやってくれてるんじゃないでしょか?
0351DCOM使っている人いるの?
NGNGQueryInterfaceの非効率さに気がついて、
MULTI_QI構造体を用意したくらいだから
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGそうですね。そっちの方が詳しく書いてある。
で、Adviseの件はどうなんでしょう?
だれか教えてください。自動的にUnadviseされるなんてやっぱり甘い?
自動的でなければ、せめて、死んだことが死んだ時点か
それに近いタイミングで通知されるような仕組みがあると楽なんだけど。
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGコンストラクタ/デストラクタ持ってる言語でも
うまく破棄されない場合があった気がする。
0359John ◆0z.4Is5E
NGNG酸
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGそれじゃ話が終わっちゃうじゃん
0362デフォルトの名無しさん
NGNG禿同
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG禿同
0365デフォルトの名無しさん
NGNGバグとも言い切れない
0366デフォルトの名無しさん
NGNG確保できた資源が、解放時にエラーになる?
それはどのシステムのどんな資源でしょうか?
0367デフォルトの名無しさん
NGNG禿同
0368デフォルトの名無しさん
NGNG参照カウンター
0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNGまぁた路線変更に迫られるのですが?
0371デフォルトの名無しさん
NGNG0372デフォルトの名無しさん
NGNG0373うぴゅ
NGNG0374デフォルトの名無しさん
NGNGMozillaのソース見たことないのか...
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGinner-processだけだし
http://www-106.ibm.com/developerworks/webservices/library/co-xpcom.html
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNGヒープが壊れたときとか。
0379デフォルトの名無しさん
NGNGUnadviseされるわけがない。
理由:Proxy/Stubがそこまで考慮していないから。
0380デフォルトの名無しさん
NGNG>だれか教えてください。自動的にUnadviseされるなんてやっぱり甘い?
カメレスで済まないけど、Adviceつーても、
単に内部で参照カウントとインターフェースのポインタ
持ってるだけだということを考えませう。
クライアントが落ちてもサーバーが落ちても、
DCOMがRelease( )してくれるのなら
メモリリークはとりあえず発生しない。
0381380
NGNGUnadviceはもちろんやってくれないので、
接続のはがれたインターフェースポインタがいつまでも居座ることにはなる。
DCOMがどんな風にRelease( )するかによるけど、安全性の観点から見て、
多分落ちることはないのではないかと思う。
(使うと常にエラーを返すようになると思うが)
ほんとは、そのあたりでエラーを検出したらインターフェースを取り外すように
Proxy/Stubを吐いてくれると無駄が無くていいのだけど。
そこまではしてくれていない。
VC++のウィザードが作るコードは、大雑把にはvectorでインターフェースを複数
保持して、それらをお構いなしにコールしているだけだと思った。
(エラーが返るからまあいいじゃねーか、という考えなのかな?)
■ このスレッドは過去ログ倉庫に格納されています