C#创建Com组件

COM是微软所有软件架构的基础,windows操作系统、office、vs开发工具、. net frameWork等都是以此为基础,Com是一项较复杂的技术,很长时间内它只能用C++ 编写,但有.net FrameWork后,编写COM 组件变得容易了。

http://www.codeproject.com/KB/vb-interop/csCom.aspx这里有一个很好的实例可供参考,但在Win7下此实例运行不了,有几点需要注意:

1.如果在接口定义时使用了[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]属性,C++的客户程序不能通过正常调用使用Com组件(comPtr->OneMethod()),只能通过IDispatch接口的Invoke()调用Com组件。用[InterfaceType(ComInterfaceType.InterfaceIsDual)]属性,双接口,可以保证C++客户端的正常调用。

2.AssemblyInfo.cs文件中的[ComVisble(false)]要改为true。使用SN工具生成密钥,对生成的Assembly使用强命名。

3.Vs2008中Project->Proporties->Build-> Register for Com选项在Win7下不起作用,不能将生成的Assembly注册到系统的Global Assembly  Cache中,这导致Com管理器无法找到DLL文件。使用Regasm /tlb将DLL注册到注册表中,Gacutil /i 将Assembly放入 Global Assembly Cache。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值