作者offday (振作回圈)
看板Programming
标题[.NET] 使用com元件 停止服务时产生问题
时间Mon May 28 01:08:39 2007
※ [本文转录自 Visual_Basic 看板]
作者: offday (振作回圈) 看板: Visual_Basic
标题: [.NET] 使用com元件 停止服务时产生问题
时间: Fri May 25 15:42:48 2007
目前的专案 是利用vb.net开发DLL来让excel使用
不过这个DLL里面又引用了一个别人开发的com元件
目前的作法是利用元件服务,注册该com元件後
在DLL内使用 obj=CreateObject("XXXX.XXXX") 的方式产生物件
基本上作业都很正常
只是最後要关闭excel
就会产生 "COM Surrogate发生问题,必须关闭,谨此致歉。"这样的错误讯息
虽然不会有啥大影响 但总还是想设法解决
原因应该是关闭excel的时候
我设定了 呼叫DLL中释放该com元件的动作(也就是在元件服务里面让该元件图示停止转动)
DLL内目前使用的方法是
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
关键应该就是这句
如果不加上那句 关闭excel就不会有com surrogate的错误讯息
不过大概隔十分钟後 还是会跳出来该错误讯息
(因为隔一段时间系统会去让这个没有被使用的元件停止转动)
总之 简单描述现在的问题就是
不论我用何种方法手动或是放着让作业系统自动去释放该com元件
都会产生"COM Surrogate发生问题,必须关闭,谨此致歉。"的状况
想请问 这个com surrogate到底是干麻的
还有如何解决这状况呢 是我使用com元件的方式不对吗
附带一提
本来该com元件是在delphi的环境中使用的 一切正常
现在想要转换到.net环境 结果就产生这状况
有可能是本身.net架构的关系吗
还是纯粹是本人使用com元件的方式错误呢
--
亲爱的神~伟大的神~你可以笑我想法太过无知
但我只是~~~~~~~~~~~~~~~~~~~~~~人....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.66.239.186
--
亲爱的神~伟大的神~你可以笑我想法太过无知
但我只是~~~~~~~~~~~~~~~~~~~~~~人....
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.144.49