VB 调用dll 总是提醒找不到该dll 实时错误53 把 DLL 放在可执行文件同一目录下,去掉函数声明中的文件名的路径部分。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我用的是其它公司提供的dll,标准dll,不需要注册 代码中不指定路径,dll放在exe目录下。调用API时注意:当前目录必须是 App.Path,否则就定位不到 dll 了。如果 CurDir 不是 App.Path,那么你必须先用 ChDrive、ChDir 把当前目录改过来。 楼主这么肯定绝对路径没有搞错,那就不清楚了,不会是NTFS权限什么的关系吧。 我试过了,还是不行,路径我没有指定,放在exe一起,但是问题还是一样的!真心奇怪了 那么还可能DppApi.dll会调用其他的dll,你没放在一起,一样是报找不到该dll的错误。 哈哈,这问题多半是提供DLL的公司的问题!但表现上又是VB6的一个BUG!我以前遇到过类似的问题,楼主可以参考一下,判断你自己的情况是否与此一样:我也是曾经拿到一个SDK,开发时调用它们的API,但报了53文件未找到,但那个文件明明就在那里,路径是绝对不可能错的.于是编译EXE后用OD跟踪一下,最终发现问题的关键不是在于VB6报的那个DLL,那个DLL是存在的;问题的关键在于,此DLL中所需要使用的一个或多个DLL不存在!在VB6中,如果目标DLL的依存DLL不存在,而导致这个目标DLL初始化失败,VB6是会报这个目标DLL为53错误的,这个错误非常迷惑人.楼主想要检查是否是这个原因引起的,那很简单,利用VS6里面自带的DEPENDS.EXE(要安装的时候装上VC才会有)去打开这个DL,然后看看依赖项里是否有问号,如果有,那就是它了 你要跟那个公司的客服联系看看是不是他依赖的dll出错了那个公司应该有说明说怎么用的 刚刚看了一下,没有问号吗,应该都调用了,没有引用其他的DLL,太奇怪了!都找不到错误所在 所谓的经验就是从吃过的苦头中来的。老马(myjian )说的没错,这是非常迷惑人的一个错误提示。 经验真的就是吃过的苦头中来的,哈哈.昨天晚上调试了一天,总是搞定了,真心被他忽悠惨了,真心是dll内部出现问题!谢谢老马兄弟了! 主要原因在于dll的初始化失败, 被引用的dll所引用的其它dll只是导致失败的其中一个原因还有其它导致dll失败的原因, 但基本都是 DllEntry 入口函数没能返回非0....还有正常的dll函数没法正常call...lz把你的exe编译后再试一下 如果你引用的dll有其他的依赖不存在也会报这个错误的 楼上有很多大牛 长相思 www.87zhibo.com 这DLL,感觉真不是这么玩的。好歹也封装成COM组件啊。 放在系统的文件下C:\WINDOWS\system32,我的系统是xp的,不知道你是哪个系统,你可以试一下,我是这么放的可以调用 补充一下,在调用dll的时候把路径全都去掉,只要这样调用就可以了Declare Function dsc_EnumSearch Lib "NECI.dll" (ByVal server_ip As Long, ByVal lpenumproc As Long) As Long 最好DLL的路径中不要有中文。 把DLL反编译一下,看看还引用了哪些DLL和外部资源 哈哈, 这问题我也碰到过,dll又调另外一个dll 請看內容,能否實現? 疑问:VB.net环境下label数组的滚动显示的方法 新手求教listbox的vbtab问题. 菜鸟提问,窗口打开的时候,自动触发一个按钮的单击事件怎么写. 菜鸟问题:active reporter是什么呀? 急:请问一个关于数据库的问题! 关于查找指定文件夹中的文件和删除文件的问题? 请问哪个版本支持 连续打印若干个.rpt ? 要求连续打印,即不换页.. 找人帮忙开发个证券小工具 有酬谢 在form里动态load控件之后,可以对这个form保存吗? 有关绘制动态曲线问题 VB用adodb.command用mysql 存储过程错误
调用API时注意:当前目录必须是 App.Path,否则就定位不到 dll 了。
如果 CurDir 不是 App.Path,那么你必须先用 ChDrive、ChDir 把当前目录改过来。
老马(myjian )说的没错,这是非常迷惑人的一个错误提示。
主要原因在于dll的初始化失败, 被引用的dll所引用的其它dll只是导致失败的其中一个原因
还有其它导致dll失败的原因, 但基本都是 DllEntry 入口函数没能返回非0....
还有正常的dll函数没法正常call...lz把你的exe编译后再试一下