VB里怎么做普通动态连接库

本拉灯 2004-07-29 12:15:01
我昨天做了直接用VB里面的Active DLL 做了那东东要编释完后,放到其他机子上运行,要注册那个DLL后才能用,请问怎么做
使得VB做成的DLL也像
Private Declare Function OpenText Lib "ResultString.dll" (ByVal FileName As String) As String

这种引用法不用注册的
也就是说放到其他机子上,不用注册DLL文件,使程序就可以直接调用这DLL库
...全文
101 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jam021 2004-07-29
  • 打赏
  • 举报
回复
"ResultString.dll"好像也是注册过的
Fancly 2004-07-29
  • 打赏
  • 举报
回复
mark
jam021 2004-07-29
  • 打赏
  • 举报
回复
外接程序管理器--打包和展开向导
helanshan 2004-07-29
  • 打赏
  • 举报
回复
我听说用VB下的一个自带软件就可以将那个DLL与软件打包在一起形成安装程序,,请问那软件在VB的什么地方,我没找到
--------------------------------------------------------------------------
外接程序--外接程序管理器--打包和展开向导。。。。
根据提示来。。把那个DLL一块打包。。
zyg0 2004-07-29
  • 打赏
  • 举报
回复
做个com安装就好了
本拉灯 2004-07-29
  • 打赏
  • 举报
回复
c2.exe还有这个
本拉灯 2004-07-29
  • 打赏
  • 举报
回复
LINK.EXE改?这个文件是哪来的
ryuginka 2004-07-29
  • 打赏
  • 举报
回复
up
yokel 2004-07-29
  • 打赏
  • 举报
回复
转贴
VB中创建可以输出函数的DLL

VB中创建的DLL只是COM组件,无法作为输出函数的DLL。今天从袁波哪里搞到一种可以创建输出函数的DLL的方法。
VB编译文件实际上采取了两次编译的方法,首先是调用c2.exe产生OBJ文件,然后调用Link.exe连接。如果在link的时候添加EXPORT选项,实际上是可以输出函数的。但是,在VB的工程选项中将这些屏蔽了。而且过分的是:VB在Build完成后会将OBJ文件删除,这样就无法通过Link来输出函数了。不过我找到一个比较龌鹾的变通的方法,就是先创建一个Exe工程,在Form_Load事件里面写下面的语句:

Private Sub Form_Load()
If (MsgBox("hehe", vbOKCancel) = vbOK) Then
Shell "link2.exe " & Command$
End If
End
End Sub

然后编译为linktemp.exe,接下来将LINK.EXE改名为Link2.exe,将linktemp.exe改名为link.exe。这样在VB调用link.exe时会弹出对话框,处理就会中断。这时就可以有机会将OBJ文件拷贝出来了

然后我创建了一个ActiveX DLL工程,在这个工程里面添加一个Module并创建一个Public函数mathadd:

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

Builder这个工程,在Link的时候就会中断。然后把创建的Class1.obj、Module1.obj、Project1.obj备份出来。

然后就可以调用Link2.exe连接OBJ到DLL了,我的连接代码是:

link2.exe "e:\vbdll\Class1.obj" "e:\vbdll\Module1.obj" "e:\vbdll\Project1.obj" "E:\Program Files\Microsoft Visual Studio\VB98\VBAEXE6.LIB" /ENTRY:__vbaS /EXPORT:mathadd /OUT:"e:\vbdll\ProjectOK.dll" /BASE:0x11000000 /SUBSYSTEM:WINDOWS,4.0 /VERS

注意里面的/ENTRY和/EXPORT开关,/EXPORT开关声明了输出函数mathadd。这样就大功告成了 :-D,可以被其他语言引入,例如在VB中,只需要:

Private Declare Function mathadd Lib "e:\vbdll\ProjectOK.dll" (ByVal a As Long, ByVal b As Long) As Long

就可以了。
本拉灯 2004-07-29
  • 打赏
  • 举报
回复
要注册也可以,
有一种法子,请问怎么打包
我听说用VB下的一个自带软件就可以将那个DLL与软件打包在一起形成安装程序,,请问那软件在VB的什么地方,我没找到
大鸟吴 2004-07-29
  • 打赏
  • 举报
回复
vb不合适做这个,如果嫌vc费劲,可以用delphi
uguess 2004-07-29
  • 打赏
  • 举报
回复
做是可以做,但是很复杂。可以在VB编译过程中通过修改OBJ文件生成。不过总而言之一句话,一般的 应用就不要考虑了,烦的很。

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧