C创建标准COM组件.doc

上传人:仙人指路1688 文档编号:2384455 上传时间:2023-02-17 格式:DOC 页数:5 大小:21KB
返回 下载 相关 举报
C创建标准COM组件.doc_第1页
第1页 / 共5页
C创建标准COM组件.doc_第2页
第2页 / 共5页
C创建标准COM组件.doc_第3页
第3页 / 共5页
C创建标准COM组件.doc_第4页
第4页 / 共5页
C创建标准COM组件.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《C创建标准COM组件.doc》由会员分享,可在线阅读,更多相关《C创建标准COM组件.doc(5页珍藏版)》请在三一办公上搜索。

1、C#写的程序集注册成标准的Com组件C#写的程序集注册成标准的Com组件,在asp中用Server.CreateObject()调用。过程如下:里面有两个方法Encrypt(string pToEncrypt,string sKey) /加密Decrypt(string pToDecrypt,string sKey) /解密using System;using System.Runtime.InteropServices;namespace 名称空间 / 首先建立接口,这个是Com必须使用的 Guid(61BB24CB-4C2C-40f8-9E13-1AC5E558D56A) public i

2、nterface IEncrypt string Encrypt(string pToEncrypt,string sKey); string Decrypt(string pToDecrypt,string sKey); / 写接口的实现 Guid(CB52E990-185E-4448-A7E8-C88ECAD563AB) public class 类名称 : IEncrypt public string Encrypt(string pToEncrypt,string sKey) / 复制FAQ加密代码 public string Decrypt(string pToDecrypt,str

3、ing sKey) / 复制FAQ解密代码 然后用打包成.dll类库文件,假设名称为MyEncrypt.dll然后用如下工具regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb /regasm命令行工具作用就是为.NET组件生成可以供COM环境调用的类型库这个.tlb文件就是类型库,可以由vb6和vc+6引用。注意上面的guid是使用工具菜单里面的创建guid工具生成的。还要注意,自动生成的assemblyinfo.cs文件中必须添加强名称和版本号,因为Com组件需要版本号,不要改动版本号,也不要用自动的1.*这样的版本号,最好使用1.1.1.1这样的固定版本,而且必

4、须一次添加,不能多次添加。代码如下一 生成.net程序集:using System;using System.IO;using System.Text;using System.Runtime.InteropServices;using System.Security.Cryptography; namespace Csic / 首先建立接口,这个是Com必须使用的 Guid(61BB24CB-4C2C-40f8-9E13-1AC5E558D56A) public interface IEncrypt string Encrypt(string pToEncrypt,string sKey);

5、 string Decrypt(string pToDecrypt,string sKey); / 写接口的实现 Guid(CB52E990-185E-4448-A7E8-C88ECAD563AB) public class Crypt : IEncrypt public string Encrypt(string pToEncrypt,string sKey) / 复制FAQ加密代码 public string Decrypt(string pToDecrypt,string sKey) / 复制FAQ解密代码 把上面的文件保存成项目的一个类库工程。然后使用的“Vsitual Studio

6、.Net工具”-Vistual Studio .Net命令提示符在命令行内打下cd c: sn -k myKey.snk就在C盘根目录下生成一个名叫myKey.snk的强名称文件,然后关闭提示符窗口。在的那个类库工程自动生成的AssemblyInfo.cs文件内把assembly: AssemblyKeyFile()改成assembly: AssemblyKeyFile(C:myKey.snk)把assembly: AssemblyVersion(1.0.*)改成assembly: AssemblyVersion(1.0.0.0) / 注意:这时你的Com组件版本为1.0.0.0版然后按Shi

7、ft + Ctrl + B键生成dll库(使用Release模式),假设是Csic.Crypt.dll。这时候,程序集就建立成功了。二、注册该程序集并创建一个类型库仍然使用开始菜单中的Vistual Studio .Net命令提示符进入你的项目目录,假设为D:myProjectbinRelease在对话框中输入d:cd myprojectbinrelease然后输入 dir 命令可以看见Csic.Crypt.dll文件然后输入:regasm /tlb Csic.Crypt.tlb Csic.Crypt.dll然后就在这个目录下生成了Csic.Crypt.tlb类型库文件。不要关闭此提示符窗口。

8、这时候,这个.dll的.net程序集就变成一个标准的Com组件了,但是还不能用,必须让它变成全局Com组件。这个regasm 实用程序将创建一个类型库并在 Windows 注册表中对其进行注册,以使 PhysServer2.dll 中的类对 COM 客户端可用 。三、 将程序集添加到全局程序集缓存中进入提示符窗口,输入gacutil /I Csic.Crypt.dll这时,你的这个dll就被复制到全局程序集缓存中了。也就是说无论在这个电脑的哪个硬盘上都可以使用此dll组件了。四、使用方法asp内的使用方法set obj = Server.CreateObject(Csic.Crypt)dim

9、str1str1 = obj.Encrypt(要加密内容,密码) / 加密dim str2str2 = obj.Decrypt(要解密内容,密码) / 解密注意:上面的这样的字符串:CB52E990-185E-4448-A7E8-C88ECAD563AB是使用“工具”中“创建GUID”自动生成的。方法2C# 创建标准COM组件 1、定义接口及实现using System; using System.Runtime.InteropServices; namespace MYLib /建立接口 Guid(61BB24CB-4C2C-40f8-9E13-1AC5E558D56A) public in

10、terface IMyInterface void Read(); void Write(); / 写接口的实现 Guid(CB52E990-185E-4448-A7E8-C88ECAD563AB) public class 类名称 :System.EnterpriseServices.ServicedComponent,IMyInterface public void Read() public void Write() 2、项目属性设置应用程序输出类型ClassLibrary3、项目属性设置程序集信息选中COM可见4、项目属性设置编译:注册为COM互用5、为程序集添加强名称文件生成强名称文

11、件的方法:使用的“Vsitual Studio .Net工具”-Vistual Studio .Net命令提示符 在命令行内输入cd c: sn -k myKey.snk 就在C盘根目录下生成一个名叫myKey.snk的强名称文件6、生成COM(1)vs中直接编译(2)通过命令行编译 regasm /tlb MYLib.tlb MYLib.dll regasm 实用程序将创建一个类型库并在 Windows 注册表中对其进行注册,以使 MYLib.dll 中的类对 COM 客户端可用 。7、注册COM如果在VS里编译后com组件将直接注册到本机中,但在新的环境中需使用.NET 服务安装工具 (Regsvcs.exe)进行注册,而不能使用regsvr32。RegSvcs.exe /reconfig MYLib.dll分类: C#

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号