使用以 /clr 生成的 COM 对象时避免 CLR 关闭异常

公共语言运行时 (CLR) 进入关闭模式后,本机函数会限制对 CLR 服务的访问。 当尝试调用使用 /clr 编译的 COM 对象上的 Release 时,CLR 将转换为本机代码,然后转换回托管代码以为 IUnknown::Release 调用(它是在托管代码中定义的)提供服务。 由于该调用处于关闭模式,CLR 将阻止它返回到托管代码中。

若要解决此问题,请确保从 Release 方法调用的析构函数仅包含本机代码。

请参见

概念

混合(本机和托管)程序集