vb 6.0 有没有办法掉用c#写的 dll文件?怎么调用,最好详细点,谢谢 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 里面有两个方法 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组件了。 四、使用方法 asp内的使用方法 set obj = Server.CreateObject("Csic.Crypt") dim str1 str1 = obj.Encrypt("要加密内容","密码") // 加密 dim str2 str2 = obj.Decrypt("要解密内容","密码") // 解密 *****************************************************************************欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html C#控制本地打印机和打印份数。。。求帮忙 c#老手近 向zgke请教关于alpha的问题。 C#调VC DLL时 Void* abc 类形怎么对应 如何实现一个继承于TextBox基类的控件,包含一个Label标签? C#入门请教 鼠标施放编程中的问题? openPOP.net 支持 SSL 接收邮件 treeview 问题 多态 在c#中想实现如下功能:通过程序把VSD文件(visio)转化为图片显示出来,我引用了Microsoft Visio 11.0 Type Library 组件(COM),但声明Applic 求access连接字符串
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组件了。 四、使用方法
asp内的使用方法
set obj = Server.CreateObject("Csic.Crypt")
dim str1
str1 = obj.Encrypt("要加密内容","密码") // 加密
dim str2
str2 = obj.Decrypt("要解密内容","密码") // 解密
*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html