重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
托管的dll跟过去的dll不同.
创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的疏勒网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
2003时期跟老版本的交互还有问题.
不要指望能用declare ....
去看.net 架构分析,对你会很有帮助.
这个dll不是动态链接库,而是程序集.可以反射的.看了之后你会更加兴奋
建议用vb2005,你会发现用COM也是很爽的.这样早期的程序可以用com的方法来调用.net的东西.
.net程序之间互相操作也比较简单.
毕竟是革命性的东西.用老的思路来解决问题职能让你越走越难,为什么不尝试一下微软建议的路线??
一、带窗体的dll创建
1、先新建 类库(testdll),在项目中添加两个窗体form1(主窗体)、form2,为了与后面的调用区分分别命名为fm1,fm2;并在fm1窗体中添加一个按钮用来调用fm2如下图
2、在fm1窗体代码中先引用fm2, 按钮代码调用fm2.如图
3、生成dll,(class1.vb中不需要写任何代码)
二、调用dll
1、新建 一个windows应用程序并添加一个按钮用来调用dll中的窗体,选 择 “项目”-“添加引用”,选择刚才创建的testdll
2、窗体代码中先引用testdll,再定义一个testdll中的fm1对象,最后执行对象的show方法
3、运行结果如下:
VB.net语言
1、创建组件定义
新建一个Probject,在代码中写入:
Public Interface IDemo
Function Test() As String
End Interface
2、实现组件定义
新建一个Probject,添加对上述Probject的引用后,在代码中写入
Public Class Demo
Implements IDemo.IDemo
Public Function Test() As String Implements IDemo.IDemo.Test
Test = "Hello World!"
End Function
End Class
3、编译出Demo.dll组件
4、使用.net的工具 Visual Studio .Net 2003 Command Prompt,输入以下命令
Regasm Demo.dll /tlb:Demo.tlb
把Demo.dll注册为一个com对象(这个com对象不等同于普通的用VB编写的Com对象),并导出类型库Demo.tlb
5、新建一个VB工程,添加对Demo.tlb和IDemo.tlb的引用
6、定义两个全局变量
Dim vbDemo As Demo.Demo
Dim vbIDemo as IDemo.IDemo
7、在Form_Load事件中初始化
'初始化实体类
Set vbDemo = New Demo.Demo
'将实体类引用到抽象类
Set vbIDemo = vbDemo
8、然后,我们就可以用 vbIDemo.Test 这样的方法了
,工程名改为add 把类模块命名为:myfirstdll (原名为class1)然后就可以写你的dll内容了,比如封装一个函数,这里我们封装一个从1加到n的函数: Public Function AddN(ByVal n As Integer) As Integer Dim i As Integer Dim sum As Integer For i = 0 To n sum = i + sumNextAddN = sumEnd Function 完成保存工作后,选择“文件”——“生成add.dll” 这样一个简单的dll完成了。你可以添加多个函数,复杂度任意!这只是以个简单的例子 下面是调用部分: 假设你有已经有了一个工程,现在需要引用刚才的dll文件。 选择“工程”-“引用”,在弹出的对话框中选浏览,选择你刚才生成的add.dll。点确定。如果说出现工程名称重复之类的提示,那是因为你的这个工程,和dll文件的工程名称一样了!你改一下工程名就行了,所以不要在新建工程时偷懒,默认的名称“工程1”会引起不必要的麻烦啊!下面是代码 在声明部分(就是代码的最上面)写: Dim testdll As myfirstdll form的load事件里写:
首先,由VB编写生成的DLL文件不是Windows标准的DLL动态链接库文件,即在VB代码中不能用代码申明调用。VB生成的DLL是Active
DLL,生成后只能在VB工程中引用,调用时还比较麻烦,在软件生成后搬到其他电脑上去,如果没注册COM控件的话还会出错。总之,要用DLL文件的话最好用VC或其他语言编写的。
如果一定要用VB生成的DLL,然后用VB调用,过程有点麻烦,你可以在百度上搜一下关键词“VB调用VB生成的DLL”这些。
至于你说的VB工程中的标签显示123这个我倒是没见过。你可以在“工程属性”那个选项里修改你要修改的东西。
这是偶一个一个字打出来的,希望选最佳答案哦
新建---类库---把你的函数放在新建的类库中-----生成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即可。