标题:[求助]关于dll的声明
只看楼主
googlers
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-8
 问题点数:0 回复次数:11 
[求助]关于dll的声明

1.一开始的时候,我在通用声明里写:
Private Declare Sub outputbdy Lib "dlltest.dll" ()
在某个按钮的单击命令下直接: call outputbdy 调用过程是可以实现的。

注:此时dll是放在vb的根目录也就是app.path下的。

2.现在,我把所有的dll都放在根目录下的bin文件夹中。这个时候,我看书上说就需要在声明
Private Declare Sub outputbdy Lib "dlltest.dll" () 中加上dll的详细目录位置,否则vb会找不到这个文件。

请问在以上情况下,改如何为dll添加具体的目录位置,谢谢各位~~~~~







[此贴子已经被作者于2007-1-10 14:27:46编辑过]

搜索更多相关主题的帖子: dll 声明 
2007-01-10 14:26
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
得分:0 
Private Declare Sub outputbdy Lib & APP.Path & "\dlltest.dll" ()
采用相对路径

雁无留踪之意,水无取影之心
2007-01-10 14:36
清澂居士
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:1237
专家分:7
注 册:2006-12-19
得分:0 
Private Declare Sub outputbdy Lib "DLL路徑\dlltest.dll" ()

佛曰:\"前世的500次回眸才换来今生的一次擦肩而过\".我宁愿用来世的一次擦肩而过来换得今生的500次回眸.
2007-01-10 14:37
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
得分:0 
Private Declare Sub outputbdy Lib & APP.Path & "\bin\dlltest.dll" ()
再加一点,没看清楚!

雁无留踪之意,水无取影之心
2007-01-10 14:40
googlers
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-8
得分:0 
以下是引用PcrazyC在2007-1-10 14:36:28的发言:
Private Declare Sub outputbdy Lib & APP.Path & "\dlltest.dll" ()
采用相对路径

这段代码好象不对吧 复制到vb里是红色的 应该是某个地方有问题的

再请教

2007-01-10 14:40
googlers
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-8
得分:0 
以下是引用PcrazyC在2007-1-10 14:40:46的发言:
Private Declare Sub outputbdy Lib & APP.Path & "\bin\dlltest.dll" ()
再加一点,没看清楚!

提示


缺少:字符串常数

2007-01-10 14:42
googlers
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-8
得分:0 
以下是引用清澂居士在2007-1-10 14:37:03的发言:
Private Declare Sub outputbdy Lib "DLL路徑\dlltest.dll" ()



搞不懂什么意思

2007-01-10 14:42
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
得分:0 

DLL路徑就是DLL文件的完整路径


雁无留踪之意,水无取影之心
2007-01-10 14:51
googlers
Rank: 1
等 级:新手上路
帖 子:92
专家分:0
注 册:2006-5-8
得分:0 
以下是引用PcrazyC在2007-1-10 14:51:12的发言:

DLL路徑就是DLL文件的完整路径



但是我现在是在根目录下的 bin文件夹下 应该怎么写?

因为装在那里不确定,所以只能用app.path来确定。 请问该怎么写?

2007-01-10 14:53
清澂居士
Rank: 6Rank: 6
等 级:贵宾
威 望:28
帖 子:1237
专家分:7
注 册:2006-12-19
得分:0 

可以在运行时用App.Path得到绝对路径,然后用LoadLibrary

Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32"(ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long,ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long

Private Sub Form_Load()
On Error Resume Next
Dim lb As Long,pa As Long
lb =LoadLibrary("user32")
pa =GetProcAddress(lb,"SetWindowTextA")
CallWindowProc pa,Me.hWnd,"Hello !",ByVal 0&,ByVal 0&
FreeLibrary lb
End Sub

佛曰:\"前世的500次回眸才换来今生的一次擦肩而过\".我宁愿用来世的一次擦肩而过来换得今生的500次回眸.
2007-01-10 14:53



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-115271-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.230172 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved