最近拿到一个项目,用vb写的。安装了vb后,想编译运行看看。结果显示文件未找到:".DLL\A.dll"
查看了项目的当前目录下,但确实有一个DLL文件夹,里面有这个A.dll文件出错的语句如下:
Call B_initial(tCard)这句之前有如下声明:
Declare Function B_initial Lib ".\DLL\A.dll" Alias "_A_open" (eCards As Integer) As Integer请问这种情况有谁遇到,可能是什么原因,要如何解决,谢谢
查看了项目的当前目录下,但确实有一个DLL文件夹,里面有这个A.dll文件出错的语句如下:
Call B_initial(tCard)这句之前有如下声明:
Declare Function B_initial Lib ".\DLL\A.dll" Alias "_A_open" (eCards As Integer) As Integer请问这种情况有谁遇到,可能是什么原因,要如何解决,谢谢
解决方案 »
- datagrid控件单元格的字体颜色
- 为什么progressbar找不到PercentPosition?
- [求助]近一个月的问题。请高手指点。100分送出,如要不够,开号在加!!
- 搭建服务器
- 请问怎样删除注册表的主健
- Visdata提示无效的关键字是什么原因?怎么解决?++++++++++++++++++++++++++++++++++++
- 用datagrid连接adodc数据,系统报错:changed database context to 'odbc数据源',up有分
- 关于编程的一些想法,供大家参考,希望对你有用。
- vb中有没有二进制和十进制转换的工具,如果没有,有没有比较好的方法????
- 请问哪里能下载到visual studio.net
- VB6 就是破..
- vb+sql 2000数据库主键问题
REGEDIT4
[HKEY_CLASSES_ROOT\.ocx]
@="ocxfile"
[HKEY_CLASSES_ROOT\ocxfile]
@=”OCX”
[HKEY_CLASSES_ROOT\ocxfile\shell\Register\command]
@="RegSvr32 \"%1\""
[HKEY_CLASSES_ROOT\ocxfile\shell\Unregister\command]
@="RegSvr32 /u \"%1\""
REGEDIT4
[HKEY_CLASSES_ROOT\.dll]
@="dllfile"
[HKEY_CLASSES_ROOT\dllfile]
@=”DLL”
[HKEY_CLASSES_ROOT\dllfile\shell\Register\command]
@="RegSvr32 \"%1\""
[HKEY_CLASSES_ROOT\dllfile\shell\Unregister\command]
@="RegSvr32 /u \"%1\""
Private Declare Sub Sleep Lib "dll\kernel32.dll" (ByVal dwMilliseconds As Long)
'Private Declare Sub Sleep Lib "dll\kernel32.dll" (ByVal dwMilliseconds As Long) '这样写也行Private Sub Form_Load()
Sleep 2000
MsgBox "ok"
End Sub
你再仔细检查下,建议不要直接在ide中运行。
这个是一个错误的路径
.\是可以的,在linux系统中./表示当前目录,应该是沿用过来的。各位花几分钟测试下吧,不要妄下结论。
Private Declare Sub Sleep Lib ".\dll\kernel32.dll" (ByVal dwMilliseconds As Long)
'Private Declare Sub Sleep Lib "dll\kernel32.dll" (ByVal dwMilliseconds As Long) '这样写也行Private Sub Form_Load()
Sleep 2000
MsgBox "ok"
End Sub
regsvr32 E:\A.DLL
先试一试吧。
通过vb的引用就更不谈了,这个只是针对activex dll的。标准dll里面是一堆函数。
activex dll里面基本就是几个类以及组成这些类的各个成员。
先打开vb6.exe再打开工程时 app.path=vb6.exe所在路径
直接打开工程文件时app.path=工程所在路径
所以你用的相对路径".\DLL\A.dll"时 直接打开工程就好使,先开vb6.exe就会提示找不到dll
首先要明白原理,看这个帖子的1楼。
其次当前目录是最不具有确定性的一个目录,即使你将 exe 和 dll 都放在期望的目录,我依旧可以通过快捷方式或命令行调用然你 exe 启动后的当前目录在其他地方。你非要用当前目录看这个帖子的3楼。又:这是整个系统的规则,与你用哪种语言开发根本毫无关系。
要学会先从自己身上找问题,不要便秘了就怪地心引力太低。
经过调试确认,快捷方式启动后,app.path不受影响