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

タイトル Re^3: 配列を使った記述の簡素化
投稿日: 2016/03/08(Tue) 14:33
投稿者魔界の仮面弁士
> PMSet = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("SELECT " & i & " FROM Win32_PhysicalMemory")

GetObject の COM 版インターフェイスは使わないでください。
(質問2)のコードのように、System.Management 名前空間を用いた記述に書き直すべきです。


もしも COM 版インターフェイスを使うのであれば、各オブジェクトの利用後には
Marshal.ReleaseComObject の呼び出しが必要となります。そしてその場合、
For Each を使うべきではありません(オブジェクトの明示的な解放手段が失われるため)。

マネージ版であれば、それぞれに IDisposable が実装されているため、
列挙子も For Each ループ後に自動処分されますが、COM 版の場合は
ReleaseComObject を自前で呼ばねばなりません。

以下、ReleaseComObject の使用例。WMI ではなく Excel の場合ですけど。
http://hanatyan.sakura.ne.jp/dotnet/Excel08.htm
http://bbs.wankuma.com/index.cgi?mode=red&namber=54149&KLOG=91

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

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