上级目录不可以,但是为了保证程序路径改变,引用不会被破坏.可以有几个方法:
①将DLL文件放在程序同级目录
第一段:带窗体的dll创建
第二段:调用dll
①.、新建 一个windows应用程序并添加一个按钮用来调用dll中的窗体,选 择 "项目"-"添加引用",选择刚才创建的testdll
一般VB.NET调用DLL可以通过Declare 语句在模块级用于声明对动态链接库 (DLL) 中的外部过程的引用.
Private Declare Sub
myFunc1 Lib "mylib.dll"
(ByVal strName As String)
以下为VB.NET调用DLL代码示例:
DllImport("kcomm.dll", CharSetCharSet:
=CharSet.Ansi, SetlastError:=True)
Private Shared Function gettxt(ByVal
port As Integer, ByVal wait As
Integer, ByVal _date As Long,
ByVal _time As Long, ByVal
filename As String) As Integer
End Function
根据实际情况更改你的DLL名称、函数名、参数名和类型.
VB.NET调用DLL的只是COM组件,无法作为输出函数的DLL,其实这只是个错误的说法.其实MS非常狡猾,如果你是个VB疯狂发烧友的话,应该早就狂试出这种可以创建输出函数的DLL的方法.
Sub Main
If MsgBox("哈哈",
vbOKCancel) = vbOK Then
Command$
End If
End Sub
然后我创建了一个ActiveX DLL工程,在这个工程里面添加一个Module并创建一个Public函数mathadd:
Public Function mathadd
(ByVal a As Long, ByVal
b As Long) As Long
mathadd = a + b
"e:\\vbdll\\Module1.obj"
"e:\\vbdll\\Project1.obj"
"E:\\Program Files\\Microsoft
/ENTRY:__vbaS /EXPORT:mathadd /OUT:
"e:\\vbdll\\ProjectOK.dll"
/BASE:0x11000000 /SUBSYSTEM:
注意里面的/ENTRY和/EXPORT开关,/EXPORT开关声明了输出函数mathadd.这样就大功告成了,可以被其他语言引入,例如在VB中,只需要:
Private Declare Function mathadd
Lib "e:\\vbdll\\ProjectOK.dll"
(ByVal a As Long, ByVal b As
Long) As Long
新建---类库---把你的函数放在新建的类库中-----生成ClassLibrary1
在net程序中---引用----对应目录下的ClassLibrary1.dll
对应的代码定义如:
Dim
mydll
As
New
ClassLibrary1.Class1
最后就可以用mydll调用你的函数MyFunction了:
.MyFunction(1,
注意:vb.net编写的DLL不能用
API函数
的方式通过Declare宣告,只能引用的方式使用
互操作
注册"打勾
然后在Visual
Studio
命令提示中运用RegAsm命令加/tlb命令生成tlb文件
例如:c:\ReleaseRegAsm
ClassLibrary1.dll
/tlb回车就会在当前目录生成ClassLibrary1.tlb文件
以上就是土嘎嘎小编为大家整理的关于vb.netdll的信息相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!