




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C#创建COM组件全过程详细介绍本文详细阐述如何用C#创建COM组件,并能用VC6.0因为上拿来等调用。并附有完整测试通过的代码。该功能总体看来箧职可是我在第一次用C#做COM的时候,痛不欲生。很少有人写这类文章。而且就算有代码也是乱帖。根本美普入歧途。后来在c#help上面看一个老外写的文幅有一个完整的SQLSERVER实例),才完成该功能。分亍。开发工具:VS2008VS2008命令提示符(呵呵,这个你应该可以找到在什么地另nF)附:本文适用任何vs系列工具。在用C#创建COM组件时,一定要记住以下几占。'所要导出的类必须为公有.就所有属性、方法也必须为公有.3?要导出的属性、方法
2、必须用接口方式;如果没有,即使该方法(属性)为公有,也不能正常导Lb至|Sio但他们可以被别的.NET程序所使用;4:所有的事件也必须用接口方现在霸门开始正题.、新建一个VisualC#工程(习惯这种叫法了,现在应该叫解决方案),选择类型“类库”;我就叫MyCom吧。、编写导出接口。为了大家理解方便,我仅一加法操作举例。如下:GuidC154BD6A6-5AB8-4d7d-A343-0A68AB79470Bz/)publicinterfaceMyCom_InterfaceDispld(l)intAdd(inta,intb);Guid为全局唯一标识,可以用VS2008的命令提示符中输入:guid
3、gen就会出来它的窗口。在几个复选框选择最后个RegistryFormat,点击NewGuid,然后COPY就行了以下如有guid的字符串,全部同样操作)Displd(l)为函数的标识。如果有多个函数可相应的在函数前面加DispId(2)J,Displd(3)、创建事件接口。Guid(D11FEA37-AC57-4d39-9522-E49c4F9826BB"),InterfaceType(CominterfaceType.InterfacelsIDispatch)publicinterfaceMyCom_EventsGuid同二,不多说InterfaceType表求向COM公开的方式
4、,这里选择为以调度的方式向COM公开。四、创建具体类:GuidC2E3C7BAD-1051-4622-9C4C-215182C6BF58,?),Classinterface(ClassInterfaceType.None),ComSourcelnterfaces(typeof(MyCom_Events)publicclassClassi:MyCom_InterfacepublicintAdd(inta,intb)returna+b;至此,代码完毕。很简单吧。别急,后面来有常常被忽略的步骤,先把整体代码放在下面(注意引用InteropServices):usingSystem;usingSyst
5、em.Runtime.InteropServices;usingSystem.Text;namespaceMyComGuid(z/154BD6A6-5AB8-4d7d-A343-0A68AB79470B,/)publicinterfaceMyCom_InterfaceDispld(l)intAdd(inta,intb);Guid(z/DllFEA37-AC57-4d39-9522-E49C4F9826BB/z),InterfaceType(CominterfaceType.InterfacelsIDispatch)publicinterfaceMyCom_EventsGuid(2E3c7BAD
6、-1051-4622-9C4C-215182c6BF58),Classinterface(ClassInterfaceType.None),ComSourcelnterfaces(typeof(MyCom_Events)publicclassClassi:MyCom_Interfacereturna+b;五、大家都知道COM是需要注册的。注册时要加密钥文件.SNK。这一部就是生成SNK文件。进入VS2008命令提示符。用命令:sn-kMyCom.snk回车。我的在E:vs2008vc下面就生成了一个(MyCom.snk)的文件。(你们可以根据自己的命令提示符所在的文件目录下去找)。然后把它CO
7、PY到你的工程根目录下。六、打开Assemblyinfo,cs。在里面加入assembly:AssemblyKeyFile("MyCom.snk)七、(1)项目属性->应用程序->程序集信息->选“使程序集COM可见”。(2)项目属性->生成->选中COM互操作注册”。八、生成。如果在Debug下有一1个MyCom.tlb,那你就成功了(肯定还有MyCom.dll)要此tlb文件是为了在VC6.0里面测试。九、在VC里面建一个MFC对话框程序(当然Console程序也一样,我为了看着方便)。建好后,把刚刚生成的MyCom.tlb拷到你的根目录下。、选在代码里加入ttimport''MyCom.tlbz,,然后编写核心测试代码:(我是在一个Buttonl按钮里面添加的),如下:voidCTestDlg:0nButtonl()Colnitialize(NULL);注意初始化MyCom:MyCom_InterfacePtr/创建智能指针p(uuidof(MyCom:Classi);MyCom:MyCom_In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 采购合同履行国际采购经验重点基础知识点
- 创业法律风险控制重点基础知识点
- 2024北京一零一中初二(下)期中英语试题和答案
- 2025设计师转正工作总结(8篇)
- 2023年甘肃酒泉地区管理人员定向招聘高速公路服务区现场管理人员10人笔试参考题库附带答案详解
- 2023年泉州城建集团急需紧缺“璞石”引才岗位招聘34名笔试参考题库附带答案详解
- 2025至2031年中国三色模具行业投资前景及策略咨询研究报告
- 2025至2031年中国1-溴-5氯戊烷行业投资前景及策略咨询研究报告
- 2025至2030年中国离心旋转泵用密封件数据监测研究报告
- 2025至2030年中国病毒防火墙数据监测研究报告
- 2025年河南地矿职业学院单招职业适应性考试题库及答案1套
- 2025届湖北省武汉市高考数学一模试卷含解析
- 河北省县市乡镇卫生院社区卫生服务中心基本公共卫生服务医疗机构名单目录地址2415家
- 煤矿新工人培训教案全新
- 人防工程施工常见质量问题及质量通病案例
- 景区防火应急预案
- 压疮的预防措施及护理
- lNG-CNG加气站土建施工组织设计
- 诊断试验和筛检试验的评价
- (修正版)压实度自动计算表
- 气柜施工方案
评论
0/150
提交评论