C#编写com+

我们将介绍C#编写COM组件的几种方法,并通过代码讲解的相识,对.NET中的C#编写COM组件进行详细的介绍。包括生成.NET程序集,注册并创建一个程序库等等。 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 interface 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,string sKey ) { // 复制FAQ解密代码 } } } 然后用vs.net打包成.dll类库文件,假设名称为MyEncrypt.dll 然后用如下工具 regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb 这个.tlb文件就是类型库,可以由vb6和vc++6引用. 注意上面的guid是使用vs.net工具菜单里面的创建guid工具生成的. 还要注意,vs.net自动生成的assemblyinfo.cs文件中必须添加强名称和版本号,因为Com组件需要版本号,不要改动版本号,也不要用vs.net自动的1.*这样的版本号,最好使用 1.1.1.1这样的固定版本,而且必须一次添加,不能多次添加. 步骤 一 生成.net程序集: 首先你把http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=35935的代码复制. 然后你复制这个代码 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 ); 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解密代码 } } } 把上面的文件保存成vs.net项目的一个类库工程. 然后使用vs.net的“Vsitual Studio .Net工具”-->Vistual Studio .Net命令提示符 在命令行内打下 cd c:/ <回车> sn -k myKey.snk <回车> 就在C盘根目录下生成一个名叫myKey.snk的强名称文件,然后关闭提示符窗口. 在vs.net的那个类库工程自动生成的AssemblyInfo.cs文件内把 [assembly: AssemblyKeyFile( "" )] 改成 [assembly: AssemblyKeyFile( @"C:/myKey.snk" )] 把[assembly: AssemblyVersion( "1.0.*" )] 改成 [assembly: AssemblyVersion( "1.0.0.0" )] // 注意:这时你的Com组件版本为1.0.0.0版 然后按Shift + Ctrl + B键生成dll库(使用Release模式),假设是Csic.Crypt.dll. 这时候,程序集就建立成功了. 二、注册该程序集并创建一个类型库 仍然使用开始菜单中的Vistual Studio .Net命令提示符 进入你的项目目录,假设为D:/myProject/bin/Release 在对话框中输入 d: <回车> cd myproject/bin/release <回车> 然后输入 dir 命令可以看见Csic.Crypt.dll文件 然后输入:regasm /tlb Csic.Crypt.tlb Csic.Crypt.dll <回车> 然后就在这个目录下生成了Csic.Crypt.tlb类型库文件.不要关闭此提示符窗口. 这时候,这个.dll的.net程序集就变成一个标准的Com组件了,但是还不能用,必须让它变成全局Com组件. 这个regasm 实用程序将创建一个类型库并在 Windows 注册表中对其进行注册,以使 PhysServer2.dll 中的类对 COM 客户端可用 . 三、 将程序集添加到全局程序集缓存中 进入提示符窗口,输入 gacutil /I Csic.Crypt.dll <回车> 这时,你的这个dll就被复制到全局程序集缓存中了.也就是说无论在这个电脑的哪个硬盘上都可以使用此dll组件了. 四、C#编写COM组件使用方法 asp内的使用方法 set obj = Server.CreateObject( "Csic.Crypt" ) dim str1 str1 = obj.Encrypt( "要加密内容","密码" ) // 加密 dim str2 str2 = obj.Decrypt( "要解密内容","密码" ) // 解密
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值