首页 新闻 会员 周边 捐助

COM 对象与其基础 RCW 分开后就不能再使用

0
悬赏园豆:5 [已解决问题] 解决于 2018-04-27 12:14

用.net 搞office出现的一个异常。

代码很简单,首先是打开office,然后我把主程序关了,office还没关,然后我写了析构函数,清理资源。vs定位到清理资源代码段,也就是访问.net 包装的com对象的成员函数时,就产生了这个错误。

 

要怎么解决?

问题补充:

office的com包装类的引用还在,为何我把主窗口关闭(主窗口类包含这个引用),这个com包装类反而先我的主程序早一步被不明aoe清理了呢?

 

需要一提的是,主窗口包含类A对象,类A包含com对象。异常出现在类A的析构函数中。

断点在:析构函数调用com对象的成员函数。

没有任何其他代码操控com对象。

 

ps。经过一天的百度,msdn,只看到一条比较合理的解释:析构函数的调用顺序是无法控制的。因此,不要在析构函数里面做这个资源释放?~~    那在哪里做?只能靠显示调用dispose~~。 还希望听听大家的见解。

诺贝尔的主页 诺贝尔 | 初学一级 | 园豆:37
提问于:2016-02-14 16:21
< >
分享
最佳答案
0

.net中控制资源释放的就是dispose模式

收获园豆:5
2012 | 高人七级 |园豆:21645 | 2016-02-16 09:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册