2011-06-27 45 views
1

我有用Visual Studio 6 ATL编写的COM组件。这是一个进程exe文件。从C#.NET我可以实例化和调用这个组件,但在调用它的函数完成之后,组件的exe仍然会加载到任务管理器中。COM Interop组件停留在内存中

这在.NET中是否正常?当我用Visual C++ 6编写的测试应用程序调用它时,它会自行卸载。

在.NET中,我所做的都是添加引用,并在列表中选择了COM组件。然后通过调用new来创建它的一个实例。

+3

你释放COM对象(S )?显示处理COM对象的代码可能会有所帮助。 –

回答

1

你所看到的问题是一样的,从这样一个问题: How do I properly clean up Excel interop objects?

这就是在幕后事情的一个很好的说明: http://blogs.msdn.com/b/cbrumme/archive/2003/04/16/51355.aspx

+0

谢谢。我会放弃这一点。我曾看过很多没有释放方法的COM Interop示例,因此我只是假设在C#中,您不必以同样的方式在C#中调用对使用new创建的对象的删除操作。我的错。 – Jonnster

+0

如果我使COM调用异步并使用连接点,这将如何工作?它仍然是一样的C + +? – Jonnster

+0

该MSDN文章给人的印象是没有什么可担心的,事实上最好不要尝试打电话发布。如果是这样,我会离开它,或者我误解了。 – Jonnster