加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 默认的IMarshal实现?

发布时间:2020-12-14 05:29:52 所属栏目:Windows 来源:网络整理
导读:我试图在我的代码中实现无注册表的COM explicilty(不能通过应用程序清单使用无注册表的COM,因为它只适用于exe级别):我创建一个加载COM dll的静态类,调用DllGetClassObject,然后是IClassFactory :: CreateInstance(). 工作得很好到一点.实施细节为http://www
我试图在我的代码中实现无注册表的COM explicilty(不能通过应用程序清单使用无注册表的COM,因为它只适用于exe级别):我创建一个加载COM dll的静态类,调用DllGetClassObject,然后是IClassFactory :: CreateInstance().

工作得很好到一点.实施细节为http://www.dimastr.com/redemption/security.htm#redemptionloader

但是,如果我从多个线程实例化我的COM对象(例如,首先在主线程上,然后从次线程实例化),.Net开始向我的对象询问IMarshal,我没有实现.

如果COM库在注册表中注册,一切正常.如果图书馆没有在注册表中注册(这是所有这一切的全部意图),..Net要求IMarshal.

有什么方法可以获得COM在内部使用的IMarshal的默认实现吗?如果我的对象没有实现IMarshal,还是防止它被贬值?

谢谢!

解决方法

CoGetStandardMarshal用于获取默认实现;但是这种方法没有记录 – 你必须四处寻找它的原型.

但是,如果您不提供IMarshal接口,则使用default implementation.因此,我认为问题出在其他地方.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读