vb如何编译dll

vb如何编译dll,第1张

把C#或VB代码通编译成msil后,相应版本的framework执行如果你用net写一个VB文件,在VB语言环境下建立一个类库,然后在BIN\Debug下就可以找到DLLNET默认工程是类库编译后才是DLL文件

VB6先创建一个ActiveX DLL 工程 TestDll
在里面加上下面的代码
Function Test(str As String) As Boolean
Test = True
MsgBox str
End Function
编译成activex dll即可
这个dll不是基于C++的标准动态链接库,但却是应用开发效率很高的activeX dll,此控件可以被MFC、Delphi、网页上的javascript和vbscript、vc++所调用和使用。
你可以自己用着试试,工程菜单里点引用,用法与其它语言编的activeX dll用法相同。然后写
TestDllTest "hello world!"
或者
Dim a As TestDll
set a = New TestDll
aTest "hello world!"
所以楼上说VB6做不到是很不负责任的,毕竟VB在14年以前1996年就能做此事了。尤其现在几乎所有语言都是写面向对象的程序,像vb这种类似activex组件式的程序已被广泛用于C#、VBNet等。 而标准dll只不过是面向结构化编程的函数库,属于上一代理念或底层开发的使用了。

可以,给你个实例看看
form1_load
If MsgBox("哈哈", vbOKCancel) = vbOK Then
Shell "link2exe " & Command$
End If
end sub
然后编译为LinkTempEXE,接下来将LINKEXE改名为Link2exe,将LinkTempEXE改名为LinkEXE。这样在VB调用LinkEXE时会d出对话框,处理就会中断。这时就可以有机会将OBJ文件拷贝出来了。
然后我创建了一个ActiveX DLL工程,在这个工程里面添加一个Module并创建一个Public函数mathadd:

Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long
mathadd = a + b
End Function

编译这个工程,在Link的时候就会中断。然后把创建的Class1obj、Module1obj、Project1obj备份出来。
然后就可以调用Link2exe连接OBJ到DLL了,我的连接代码是:

Link2exe "e:\vbdll\Class1obj" "e:\vbdll\Module1obj" "e:\vbdll\Project1obj" "E:\Program Files\Microsoft Visual Studio\VB98\VBAEXE6LIB" /ENTRY:__vbaS /EXPORT:mathadd /OUT:"e:\vbdll\ProjectOKdll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,40 /VERS
最后一段是个批处理。
注意里面的/ENTRY和/EXPORT开关,/EXPORT开关声明了输出函数mathadd。这样就大功告成了,可以被其他语言引入
(275267278) 11:17:39
(1)/EXPORT:mathdec /EXPORT:mathadd 为导出函数,如果存在多个函数要导出,可加入例:/EXPORT:Function
(2)"ProjectOKdll" 为编译后的生成的动态库名称
这样,运行批处理后就生成了一个标准的dll。
就可以像api那样调用它了。
批处理,不能出错。出错是生成不了dll的。
out 是输出dll的路径


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12594526.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存