扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
我做过,但是具体忘记了。不过给你个提示: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即可。
建立个类库项目,但是.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("参数")
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流