gpt4 book ai didi

.net - 默认 IMarshal 实现?

转载 作者:可可西里 更新时间:2023-11-01 14:14:08 24 4
gpt4 key购买 nike

我试图在我的代码中实现无注册表的 COM explicilty(不能通过应用程序 list 使用无注册表的 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用于获取默认实现;但是这个方法没有记录——你必须四处搜索才能得到它的原型(prototype)。

但是,如果您不提供 IMarshal接口(interface)default implementation用来。因此,我认为问题出在其他地方。

关于.net - 默认 IMarshal 实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4006684/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com