在PInvoking非托管代码时,我应该调用FinalReleaseCOMObject吗?

时间:2012-05-30 13:33:57

标签: c# com pinvoke

我有一个托管的.NET 2.0 dll,它提供IDispatch接口并调用IDispatch接口。读这个问题这个问题:

When to use ReleaseComObject vs FinalReleaseComObject?

听起来好像我应该等待垃圾收集来释放我的COM对象引用,而不是试图自己计算它们。但是当我这样做时,调用我的DLL的非托管代码会抛出一个错误(我没有调试错误的源代码),但它表明这是一个未经授权的虚拟内存访问问题。添加FinalReleaseCOMObject会停止此错误。

我应该使用FinalReleaseCOMObject吗?

编辑:忘记提及托管代码被非托管dll替换时它没有出现错误。

0 个答案:

没有答案