为什么程序运行时,有时会提示找不到公共模块中有函数声明的DLL文件
我的程序中包含两个公共模块MODULE2和MODULE5
Module2中包含 一个 Public Sub Main()
MODULE5中包含一些 写卡的 函数 声明如下:
'读写器通用函数
Public Declare Function E5557_Write_Free Lib "READER.dll" (ByVal Page_Num As Integer, ByVal Block_Num As Integer,ByVal LockBit As Integer, ByRef Data As Byte) As Long
有时在开始运行程序时 会 出现提示 找不到READER.dll文件 请问是怎么回事。
再就是如果 将Lib "READER.dll"写一个完整路径时 如 LIB APP.PATH & "\READER.dll" 时 APP被选中,并出现错误提示
“缺少字符串常数” 是怎么回事。
[解决办法]
首先,你的申明书写方法肯定是错了的,没有这样写的
Dll通常需要注册(也不尽然,也有不需要注册的,这和其内部结构有关系),你可以将Dll放到C:\Windows\System32目录下,然后使用RegSvr32进行注册,这样在编辑环境中就可以申明使用了。
Public Declare Function E5557_Write_Free Lib "READER.dll" (ByVal Page_Num As Integer, ByVal Block_Num As Integer,ByVal LockBit As Integer, ByRef Data As Byte) As Long
[解决办法]
这种错误提示我有时候也会遇到,最多遇到的是mscomm32.dll,出现这种问题,我重新复制一个放到程序目录下覆盖原来的就好了,具体原因我也没找到
[解决办法]
declare声明的格式如下
语法 1
[Public | Private] Declare Sub name Lib "libname" [Alias "aliasname"] [([arglist])]
语法 2
[Public | Private] Declare Function name Lib "libname" [Alias "aliasname"] [([arglist])] [As type]
因为VB要求lib后面的"libname"是必须的字符串,而且只能是字符串常量,APP并不是字符串常量,所以报错
[解决办法]
不是声明的问题。
如果你是启动 VB 后加载工程,则 IDE 环境下缺省的路径是 VB 安装路径。
所以调试时,可以双击 .vbp 工程文件启动 VB。
另外,如果你在代码中有 CommonDialog 之类的查找路径操作,并指定过其他路径下的文件,下次启动也会找不到 DLL。这种情况下,可以在 CommonDialog 操作结束时,用 ChDir App.Path 语句恢复当前路径。
还有一种方法,是在 Windows 的 system/system32 路径下复制一个 DLL 文件。这是程序查找动态库文件的搜索路径之一。
[解决办法]
http://topic.csdn.net/u/20090309/16/2f607d2a-5dba-44d7-a333-188b73415533.html
一楼
[解决办法]
用什么相对路径啊。
你那个 .dll 在你电脑上放哪的,写绝对路径。
或者在系统的 System32 中放个拷贝,声明时就不要带路径(应该不用注册.dll也能正常使用)。
发布产品时,把你的 .dll 跟你的程序放一起就行了。
[解决办法]
执行编译后的 .exe 就不存在这个问题了,只要将 DLL 放在同一路径,或缺省的搜索路径之一。
为什么程序运行时,有时会提示找不到公共模块中有函数声明的DLL文件,该怎么处理
为什么程序运行时,有时会提示找不到公共模块中有函数声明的DLL文件我的程序中包含两个公共模块MODULE2和MO
