放在exe文件的程序来不行啊。 我在程序是这样引用的。 Private Declare Function FromPreGetNextKey8 Lib "A.dll" (ByVal FK As Long, ByVal FN As Long) As Long 为什么我删除了system32下面的A.dll文件就说找不到文件了呢?
DLL的声明如下 Declare Function publicname Lib "libname" [Alias "alias"] [([[ByVal] variable [As type] [,[ByVal] variable [As type]]...])] As Type 其中"libname"就是所指定的DLL文件名,可给它指定路径 如果未指定 libname 的路径,Visual Basic 将按照下列顺序查找该文件: 1. .exe 文件所在的目录 2. 当前目录 23. Windows 位系统目录(通常为 \Windows\System) 24. Windows 目录(不一定是 \Windows) 16. Path 环境变量中的目录 所以,只要指定路径,DLL可以放在任何地方
完全可以使用相对路径,就像调用普通的API一样,对于楼主的.dll这样就行。Private Declare Function FromPreGetNextKey8 Lib "A.dll" (ByVal FK As Long, ByVal FN As Long) As Long把.dll文件和工程文件放在同一个目录中后,有一点一定要注意,就是打开工程要在资源管理器中直接双击工程文件打开,绝不能先启动VB的IDE,再打开工程,否则就会提示找不到.dll文件。
我在程序是这样引用的。
Private Declare Function FromPreGetNextKey8 Lib "A.dll" (ByVal FK As Long, ByVal FN As Long) As Long
为什么我删除了system32下面的A.dll文件就说找不到文件了呢?
一旦你的程序生成了 exe ,那么你的 a.dll 是可以放在跟 exe 同一个文件夹里面的,也可以放在 system32 文件夹里面,或者系统环境变量 %path% 所指定的目录。
Declare Function publicname Lib "libname" [Alias "alias"] [([[ByVal] variable [As type] [,[ByVal] variable [As type]]...])] As Type 其中"libname"就是所指定的DLL文件名,可给它指定路径
如果未指定 libname 的路径,Visual Basic 将按照下列顺序查找该文件:
1. .exe 文件所在的目录
2. 当前目录
23. Windows 位系统目录(通常为 \Windows\System)
24. Windows 目录(不一定是 \Windows)
16. Path 环境变量中的目录
所以,只要指定路径,DLL可以放在任何地方
标准dll不用注册。
如果打包程序的话,可以放在程序文件夹内或系统的system32目录中
你也可以把你的程序目录放到PATH环境变量里,这样你的DLL就可以找到了,或者将引用的DLL中包括文件的路径也可以的!!
98下面是 SYSTEM
应用程序调用.DLL的时候搜索顺序是其中有去 系统文件夹搜得,所以可以放在系统文件夹下.也可以和应用程序放在同一文件夹下.
搜索顺序是: 1.应用程序.exe所在文件夹
2.工程所在文件夹
3.系统文件夹
只要注册了就行.