VC++のReleaseComObject – プログラミング – Home

通知
すべてクリア

VC++のReleaseComObject


mac
 mac
(@mac)
ゲスト
結合: 22年前
投稿: 37
Topic starter  

いつもお世話になっております、macです。

以前Excelについて質問しました。
http://rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200512/05120046.txt

VC++からExcelを起動して、データを保存するシステムを作成していますが、
Excelを終了しても、プロセスが残ってしまいます。
そこで、ウェブで調べてみたところ、
COMのオブジェクトを消すために、以下の処理を行わなくてはならない
とのことでした。

System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)

VC++の場合、このReleaseComObjectはどこから取得できるのでしょうか?

開発環境 WindowsXP VC++ 6.0 Excel2000


引用解決済
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

VC++ 6.0 なら、その記述は気にしなくてもいいです。
ReleaseComObject は .NET Framework を使う場合に必要ですが、VC++ 6.0 では .NET
アプリケーションは作れません。


返信引用
mac
 mac
(@mac)
ゲスト
結合: 22年前
投稿: 37
Topic starter  

シャノン様、回答ありがとうございます。

とすると、使用した全てのオブジェクトに対して
ReleaseDispatch
を呼んであげればよい、
ということでしょうか?


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

MFC については詳しくないので、どなたか他の方にバトンタッチ。


返信引用
MacBS
 MacBS
(@MacBS)
ゲスト
結合: 19年前
投稿: 2
 

私もずいぶん昔ですが、VC6で書いたことがあります。
確か、CoUninitialize()でリリースされるのではなかったかと。
ちなみに、COMの初期化のため、最初にCoInitialize()する必要もあります。

詳しくは、以前、私がまとめた、下のページを参照ください。
http://homepage1.nifty.com/macbs/program.htm


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました