1、VB 调用 C#编写的 dll 实现 DES 加/解密、Base64 加/ 解密实例1、 C#编写 dll 及编译(1 ) 新建项目 StringEncrypter。(2 ) 新建 c#文件 StringEncrypter.cs(3 ) 在 C#文件中编写一个接口:using System.Runtime.InteropServices;namespace MyStringEncrypter Guid(“61BB24CB-4C2C-40f8-9E13-1AC5E558D56A“)public interface IStringEncrypterstring EncryptDES(string
2、encryptString, string encryptKey);string DecryptDES(string decryptString, string decryptKey);string Base64Encode(string mystr);string Base64Decode(string base64str);string Encode(string str);string Encode(string str, string key);string Decode(string str);string Decode(string str, string key);注意:必须引入
3、命名空间 System.Runtime.InteropServices;必须使用 Guid 特性进行标记。Guid 的值可以使用 VS 的工具生成。(4 ) 编写一个类实现“IStringEncrypter”接口注意:必须设置 Guid 特性。DES 算法实现可从网上搜索。(5 ) 设置项目属性 应用程序-程序及信息- 使程序集 COM 可见 生成-为 COM 互操作注册 签名-新建 输入密钥名称和密码(6 ) 所有步骤完成项目。2、 VB 调用步骤(1 ) 把生成的 StringEncrypter.dll 文件拷贝到 VB 开发机器任意目录,如:C:WINDOWSsystem32 (该机器需
4、安装相应的 .NET 框架,这里使用的 .net 4.0);(2 ) 在 CMD 命令窗口输入 “Regasm /tlb /codebase C:WINDOWSsystem32StringEncrypter.dll”命令注册该 DLL 文件,如果 Regasm命令不可用,请输入该命令完整路径,如:C:WINDOWSMicrosoft.NETFrameworkv4.0.30319Regasm;注册成功系统会有如下提示:Types registered successfullyAssembly exported to C:WINDOWSsystem32StringEncrypter.tlb, an
5、d the type library was registered successfully(3 ) 新建 VB 工程,在“工程”-“引用”-“浏览” ,在“添加引用”对话框中将文件类型置为“所有文件(*.*) ”,找到“C:WINDOWSsystem32StringEncrypter.tlb”并确定添加引用,如下图示说明引用成功;图 1(4 ) 在 VB 中设计测试代码如下:Dim test As New StringEncrypter.StringEncrypterDim result as Stringresult = test. EncryptDES(“vb call C# dll”,”12345678”)Debug.Print result3、 StringEncrypter 方法及参数如下:略4、 特别说明(1 ) VB 无智能提示,需要手工写方法名称及参数,具体访求及参数说明参上(2 ) VB 对重载方法的支持不是很好,因此重载方法的调用会有问题