十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
一、带窗体的dll创建
成都创新互联公司主营廊坊网站建设的网络公司,主营网站建设方案,重庆APP开发,廊坊h5小程序定制开发搭建,廊坊网站营销推广欢迎廊坊等地区企业咨询
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、运行结果如下:
在您的代码中,您已经成功使用了RegAsm命令将DLL注册为COM组件,并在VB6中成功引用了该组件的类型库文件(TLB文件)。此外,您还在VB6代码中声明了一个YCImageDo类型的对象,并成功创建了该对象。
但是,当您尝试使用YCImageDo对象的属性和方法时,却发现这些成员不可见。这可能是因为在编写DLL代码时您没有正确地声明这些成员的可见性。
在VB.NET中,您可以使用"Public"关键字来声明一个类型的成员(属性、方法、过程等)对外可见,而使用"Private"关键字则声明该成员仅在类型内可见。如果您希望YCImageDo类型的成员在VB6代码中可见,则应将这些成员声明为Public类型。
例如,如果您希望YCImageDo类型拥有一个名为"GetImage"的方法,则可以在DLL代码中按如下方式声明该方法:
Public Function GetImage() As String
' 在这里编写方法的代码
End Function
同样,如果您希望YCImageDo类型拥有一个名为"ImagePath"的属性,则可以在DLL代码中按如下方式声明该属性:
Public Property ImagePath As String
DLL(动态链接库)是一个很有用的东西,在开发大项目的时候显得非常重要,因为多人合作开发时,可以给每个人分配一个任务,用DLL完成,最后组合起来,就不会出现互相冲突的问题。这里给出最简单的DLL编写与调用的示例
首先,我们打开VB.NET,选择类库,名称改为test
然后输入以下代码
Public Class test
Public Function test(ByVal a As Long, ByVal b As Long) As Long
Return a + b
End Function
End Class
保存后,生成DLL文件。
这就是最简单的一个DLL,下面是调用该DLL的示例
新建一个工程,单击“项目” -- 添加引用
找到刚才生成的DLL,双击它
添加引用以后,似乎什么也没发生,这时我们输入以下代码:
Imports test.test
这样,就包含了该DLL的类。
然后我们定义一个类
Dim test As New test.test
这样,就可以使用里面的函数了,下面是程序示例
Imports test.test
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim test As New test.test
MsgBox(test.test(1, 2))
End Sub
End Class
运行该程序,可以看到,调用了DLL内的函数。
这就是最简单的DLL示例,可以将一些复杂的代码集成到DLL里,以后升级或重用都比较方便。
DLL不能装应用的。。里面只能写一些函数,或者做一些钩子,不过你倒是可以把窗体生成函数写到动态链接库里