建立个类库项目,但是.net的类库项目生成的dll只能给.net自己使用,所有要写成.NET的COM组件才能给如VB6程序使用。
成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、成都网站建设、外贸网站建设、雄县网络推广、小程序定制开发、雄县网络营销、雄县企业策划、雄县品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供雄县建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
如下就是.net COM组件格式了。但是给别人用也要装.net framwork
[Guid 为工具里创建,你还要用签名一个.snk文件,然后把这个类库项目属性里加上这个签名
签名文件产生你可以到.net SDK运行命令 sn -k name.snk产生签名文件,然后再项目里加上签名文件。
namespace Test
{
[Guid("A7EB3BC2-FFB9-471b-BE23-8AAA365946F5")]
public class testclass
{
public testclass()
{
}
//一定要这个这是标明COM组件的入口地址,每个给外面接口的都要写这个如[DispId(2]中间数字不能重复
[DispId(1)]
public string hello(string whatyouwantoencrypt)
{
return "hello!,you want to crypt:" + whatyouwantoencrypt;
}
然后再VB脚本里可以这样调用
dim SppClient
Set SppClient= CreateObject("Test.testclass")
记的一定要[Guid("A7EB3BC2-FFB9-471b-BE23-8AAA365946F5")]
[DispId(1)]
和签名,否则不能生成有用的COM组件。
新建---类库---把你的函数放在新建的类库中-----生成ClassLibrary1
在net程序中---引用----对应目录下的ClassLibrary1.dll
对应的代码定义如: Dim mydll As New ClassLibrary1.Class1
最后就可以用mydll调用你的函数MyFunction了: mydll .MyFunction(1, 2)
注意:vb.net编写的DLL不能用API函数的方式通过Declare宣告,只能引用的方式使用
vb.net要编写的DLL能被vb6.0引用,需要先在编译属性中选择“为COM互操作注册”打勾
然后在Visual Studio 2008 命令提示中运用RegAsm命令加/tlb命令生成tlb文件
例如:c:\ReleaseRegAsm ClassLibrary1.dll /tlb回车就会在当前目录生成ClassLibrary1.tlb文件
vb6.0中引用ClassLibrary1.tlb即可。
比如有一个类是You.dll,里面有一个封装好的方法是YouSub(byval a as system.array)
在工程里面,你在引用中,添加引用,选择You.dll的路径所在,添加引用;
添加引用后,要定义一个类,并实例化他
dim you as You=new You()
you.YouSub("参数")