使用本地注册免费c++ COM服务器从托管应用程序
Using native registration free C++ COM server from managed app
我有一个本地的c++ COM Server dll伴随着类型库(。TlbImp.exe生成的. net互操作程序集。服务器是免费注册的,我有一个清单来激活它的上下文。我想从托管c#应用程序中使用服务器。在创建服务器类的对象之前,我激活了上下文,但我不确定什么时候应该停用它?我找到了一篇文章(http://www.mazecomputer.com/sxs/help/sxsapi2.htm),上面写着
注意,与上面的c++示例不同,我们还不能取消激活上下文。COM互操作将需要上下文来定位进行COM对象调用所需的类型库。
我应该保持上下文激活所有或只是第一个COM对象调用?MSDN网站上有关于这件事的详细说明吗?
我有一个清单来激活它的上下文
在代码中显式地调用Create/ActivateActCtx()对于一个没有regg的COM服务器来说永远都不是正确的事情。在一些极端情况下,它可能很有用,但仅适用于引用并排安装的程序集的清单项。部署在c:windowswinsxs目录下的dll。典型的例子是启用Visual Styles的清单项,它的comtl32 .dll的版本是6.0。如果您编写的DLL需要驻留在不使用视觉样式的遗留应用程序中,则可能不想这样做。
但是永远不能用于COM服务器,因为它不能在没有活动的清单条目的情况下正确操作。您希望它在程序开始时立即激活,这是客户端清单中清单条目的默认行为。
请记住,这是完全自动的。只需将类型库引用的isolation属性设置为True。这将使生成系统在注册表中查找服务器的注册并自动生成清单。你根本不需要做任何事,那样你永远不会出错。唯一的要求是服务器实际上已在您的机器上注册,以便可以读取注册表项。这很好,在用户的机器上只有真正的关心这个
- 使用 QT 开发服务器应用程序是个好主意吗?(QT5)
- 在POCO服务器应用程序中预防目录遍历攻击
- 仅使用UDP托管小型服务器应用程序的缺点是什么
- 客户端服务器应用程序的频道
- 在服务器应用程序的情况下,是截断线被视为良好,中性或设计差的线程
- 使用WinSocket客户端/服务器应用程序重复使用插座
- 无法在 C++ 服务器应用程序上提交 iphlpapi.lib
- 执行析构函数时,服务器应用程序总是崩溃
- 在多线程c++服务器应用程序中处理非常量全局配置
- 在 CORBA 客户端/服务器应用程序中将无符号的长整型(从 C++)断言为长整型 (Java)
- CORBA客户端/服务器应用程序,从服务器获取信息(空值)
- 服务器应用程序的C++与Java
- 如何在C++服务器应用程序和django web应用程序之间进行通信
- 在Javascript服务器应用程序之后获取HTML
- 服务器应用程序看不到具有相对路径的文件
- 如何在没有源代码的tcp服务器应用程序中查找错误
- 如何在 ATL COM+ 进程外服务器应用程序中标识调用方的进程?
- 如何从 Http 请求处理程序正确终止 POCO 服务器应用程序
- 服务器应用程序.始终打开的插座
- 如何在Qt中编写客户端-服务器应用程序并实现简单的协议