重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我做过,但是具体忘记了。不过给你个提示:VB6生成的是COM组件,不是提供输出函数过程的DLL无法通过普通的DLL声明--调用函数。可以参考VB6中调用VB6的DLL(设:1.DLL class类名为:classtest 过程/函数名为:MTEST)调用
成都网站建设哪家好,找成都创新互联!专注于网页设计、重庆网站建设公司、微信开发、小程序设计、集团成都企业网站定制等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:报废汽车回收等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称誉!
dim objecttest as objectset object=createobject("1.classtest ")objtest.Mtest
手头没有VB6+NET工具 没办法,只能到这了,希望对你有帮助
新建---类库---把你的函数放在新建的类库中-----生成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即可。
你这个需求很奇怪,也不好实现
那你这个CloseForm在哪里调用?
ColseForm(Form Me){
Me.Close();
}
其它地方的窗体调用这个方法就直接用:CloseForm(this);
将写好的类模块里面的内容全部copy下来,新建一个activeX
Dll工程,粘贴到class里面去,文件-〉生成dll就可以了。
提醒:vb创建的是activeX
Dll,要用createobject方法调用!
建立个类库项目,但是.net的类库项目生成的dll只能给.net自己使用,所有要写成.NET的COM组件才能给如VB6程序使用。
如下就是.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组件。
比如有一个类是You.dll,里面有一个封装好的方法是YouSub(byval a as system.array)
在工程里面,你在引用中,添加引用,选择You.dll的路径所在,添加引用;
添加引用后,要定义一个类,并实例化他
dim you as You=new You()
you.YouSub("参数")