收藏 分享(赏)

VC调用C#的COM组件.docx

上传人:gnk289057 文档编号:6227532 上传时间:2019-04-03 格式:DOCX 页数:3 大小:14.07KB
下载 相关 举报
VC调用C#的COM组件.docx_第1页
第1页 / 共3页
VC调用C#的COM组件.docx_第2页
第2页 / 共3页
VC调用C#的COM组件.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、一、新建一个 Visual C#工程(习惯这种叫法了,现在应该叫解决方案) ,选择类型“类库” ;我就叫 MyCom 吧。二、编写导出接口。如下:Guid(“154BD6A6-5AB8-4d7d-A343-0A68AB79470B“)public interface MyCom_InterfaceDispId(1)int Add(int a, int b);Guid 为全局唯一标识,可以用 VS2008 的命令提示符中输入:guidgen 就会出来它的窗口。在几个复选框选择最后一个 Registry Format,点击 New Guid,然后 COPY 就行了(以下如有guid 的字符串,全部

2、同样操作)DispId(1)为函数的标识。如果有多个函数可相应的在函数前面加DispId(2), DispId(3)三、创建事件接口。Guid(“D11FEA37-AC57-4d39-9522-E49C4F9826BB“), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)public interface MyCom_EventsGuid 同二,不多说InterfaceType 表求向 COM 公开的方式,这里选择为以调度的方式向 COM 公开。四、 创建具体类:Guid(“2E3C7BAD-1051-4622-9C4C-215182C6

3、BF58“), ClassInterface(ClassInterfaceType.None), ComSourceInterfaces(typeof(MyCom_Events)public class Class1 : MyCom_Interface public int Add(int a, int b) return a + b; 后面来有常常被忽略的步骤,先把整体代码放在下面(注意引用 InteropServices):using System; using System.Runtime.InteropServices; using System.Text; namespace MyC

4、om Guid(“154BD6A6-5AB8-4d7d-A343-0A68AB79470B“)public interface MyCom_InterfaceDispId(1)int Add(int a, int b);Guid(“D11FEA37-AC57-4d39-9522-E49C4F9826BB“), InterfaceType(ComInterfaceType.InterfaceIsIDispatch)public interface MyCom_EventsGuid(“2E3C7BAD-1051-4622-9C4C-215182C6BF58“), ClassInterface(Cl

5、assInterfaceType.None), ComSourceInterfaces(typeof(MyCom_Events) public class Class1 : MyCom_Interface public int Add(int a, int b)return a + b;五、大家都知道 COM 是需要注册的。注册时要加密钥文件.SNK 。这一部就是生成 SNK 文件。进入 VS2008 命令提示符。用命令:sn k MyCom.snk 回车。我的在 E:vs2008vc 下面就生成了一个(MyCom.snk )的文件。 (你们可以根据自己的命令提示符所在的文件目录下去找) 。然

6、后把它 COPY 到你的工程根目录下。六、打开 AssemblyInfo.cs。在里面加入assembly:AssemblyKeyFile(“MyCom.snk“)七、(1)项目属性 -应用程序-程序集信息-选中“使程序集 COM 可见” 。(2)项目属性-生成-选中“为 COM 互操作注册” 。八、生成。如果在 Debug 下有一个 MyCom.tlb,那你就成功了(肯定还有 MyCom.dll)要此tlb 文件是为了在 VC6.0 里面测试。九、在 VC 里面建一个 MFC 对话框程序(当然 Console 程序也一样,我为了看着方便) 。建好后,把刚刚生成的 MyCom.tlb 拷到你的

7、根目录下。十、选在代码里加入#import “MyCom.tlb“,然后编写测试代码,如下:void CTestDlg:OnButton1()CoInitialize(NULL); /注意初始化MyCom:MyCom_InterfacePtr p(_uuidof(MyCom:Class1); /创建智能指针MyCom:MyCom_Interface *s = p;int a = 3;int b = 6;int c = s-Add(a,b);CString str;str.Format(“%d“,c);MessageBox(str);当弹出一个 9,就说明你已经成功用 C#创建 COM 组件了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 网络科技 > 开发文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报