tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: レイトバインドするとExcelのFindNextオブジェクトが開放できなくなります
投稿日: 2010/07/14(Wed) 11:21
投稿者camputer
 魔界の仮面弁士 博士(`ー´)ゞ

 どうもありがとうございます!!m(_ _)m

> アーリーバインドの場合は、変数 myRng の型が Range でしたが、
> レイトバインドの場合は Object 型ですよね。
> このため、FindNext の処理では内部的に型チェックと Object → Range への
> 型変換が発生し、恐らくこの段階で参照カウントが増加してしまうのでしょう。
 なんとその様な現象が起こるのでございますか。。。全然存じませんでした。
参考リンクをどうもありがとうございます。リンク先で
  > むしろ、型変換にともなって参照カウントが増加するなどの理由から、
  > レイトバインドの方が、解放が難しくなる事さえありえます。
と書いてくださっていますね^^(早くこういう記事を自分で探してこれるようにならな略orz)

> myRng を ReleaseComObject する際に、その戻り値を確認してみてください。
> 正しく解放されていれば 0 が返されるはずですが、0 以外になっているようなら、
> この部分は ReleaseComObject ではなく FinalReleaseComObject で解放した方が安全です。
 はい!今からやり方から調べて戻り値を調査してまいります。

> ちなみにこのようなケースでは、.NET 1.x 当時は、ReleaseComObject を 0 になるまで
> 繰り返すパターンで解放していたのですが、2.0 以降では、FinalReleaseComObject を
> 使う事が推奨されています。
 どうもありがとうございます。こういう、長い間VBを触っていないと
得にくいお話は理解が深まりますしタメになります。

> この場合は、開放ではなく解放
orz いつもご指摘どうもありがとうございます。タイトル以外修正いたしました。
(言い訳がましいでございますが、今タイプしておりますPCがIMEの学習機能設定を
ほぼ0にされておりまして、何度打っても「解放」を第一候補にしてくれません。。。
注意いたします^^;)

 再度お礼&ご報告させていただきます!どうもありがとうございました!!

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。