如何用C 包裹的COM接口部署C#库
How to deploy C# library with COM interface wrapped in C++?
我已经创建了c#库,但随后发生了一些不受管理的C 解决方案也需要它。我创建了COM接口(提取的接口,添加了GUID,创建的键,注册等)。
我创建了使用TLB文件并创建TLH文件的C 库。目前,我正在创建一些简单的UI来检查此包装器是否有效。我的问题是 - 我应该向客户提供什么,因为我对COM对象的"签名"过程有疑问。我现在必须部署 - 一个C#库及其用C 编写的包装器(使用.H,.lib和.dll-也许还有更多?)。我不知道它是否会启动,当它未在用户系统中注册时?如何处理它,当用户获取一些文件时,他可以立即与他们合作?
不,您的客户不需要此" C 包装器"。它们可以轻松地生成一个,例如,MSVC 中的#IMPORT指令会自动自动。无论如何,他们都不需要使用C ,com用任何语言都起作用。如果您完全包含任何内容,请考虑一个演示界面的工作方式的演示程序,还可以让他们检查所有内容是否正确安装并按照工作顺序安装。
您的客户需要的是 type库,一个.tlb文件,该文件描述了界面,并且大多数编译器都可以读取。像MSVC 中的#IMPORT指令一样,项目 在.NET项目中添加参考。类型库与.NET组件中的元数据完全相同。在C#[Comvisible]汇编的情况下,它是由.NET元数据自动生成的,您可以在汇编上运行tlbexp.exe。您的客户也可以做到这一点,如果他们这样做,那就更好了。但是,如果他们不熟悉.net工具,您可以为他们做。
您必须做的唯一一件事就是编写一个安装程序,以便在客户的计算机上正确注册程序集。与Regasm.exe一样。com非常喜欢[可忽视]集会的GAC,com有一个讨厌的dll地狱问题。
您需要创建一个安装程序,该安装程序在目标计算机中注册您的程序集。如果创建MSI安装程序,则在文件系统编辑器中有一个寄存器属性,其中具有不同的COM注册选项。MSI可以检测项目输出的依赖关系。您可以在这里开始阅读:
http://msdn.microsoft.com/en-us/library/cc766795.aspx
- 使用调试/崩溃报告将应用程序部署到客户端
- C++核心准则 C35 对于接口类"A base class destructor should be either public and virtual, or protected and nonv
- Visual C++GC接口如何启用它以及要包含哪个库
- Windows.h与GLFW.h的接口
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 提供与TMP和SFINAE的通用接口
- 为重写std::exception的库生成swig接口时出错
- 内联如何影响模块接口中的成员函数
- 使用 mod_gsoap 部署服务时,如何在 Gsoap 中更改 soap 上下文的模式?
- COM 接口 c# 封送数组数组
- 如何在 SCIP C++ 接口中获取 MILP 约束矩阵中的系数值
- 重载 -> shared_ptr 个实例中的箭头运算符<interface>,接口中没有纯虚拟析构函数
- 如何绑定 C++ gRPC 客户端的网络接口
- 模板化接口 - 创建一个泛型模板类以返回任何容器
- 如何从实现接口的模板化类实例访问结构
- 带有进度表的 curl 多接口程序
- 设计帮助 - 为不同类型的消息处理通用接口的设计模式
- 我可以在具有一个标头和一个接口的 cpp 文件中有多个嵌入吗?
- 如何用C 包裹的COM接口部署C#库
- 部署c++服务器并公开接口