Tag: com callable wrapper

“与基础RCW分离的COM对象不能与.NET 4.0一起使用”

我在.NET 3.5 C#WinForms应用程序中有一个类,它有五种方法。 每种方法都使用不同的C ++ COM接口集。 我使用Marshal.FinalReleaseCOMObject来清理这些COM对象。 此代码在此.NET平台上运行正常,没有任何问题。 但是,当我将此应用程序移动到.NET 4.0时,我开始在这些方法中的一个中将错误从ICOMInterface1为ICOMInterface2 ,即: ICOMInterface1 myVar= obj as ICOMInterface2; 无法使用已与其基础RCW分离的COM对象。 如果我删除使用Marshal.FinalReleaseCOMObject的行,我不会收到此错误。 我在这里想念的是什么? 如何从.NET 4.0平台上的内存中清除这些非托管COM对象?