把 DLL 放在可执行文件同一目录下,去掉函数声明中的文件名的路径部分。

解决方案 »

  1.   

    我用的是其它公司提供的dll,标准dll,不需要注册
      

  2.   

    代码中不指定路径,dll放在exe目录下。
    调用API时注意:当前目录必须是 App.Path,否则就定位不到 dll 了。
    如果 CurDir 不是 App.Path,那么你必须先用 ChDrive、ChDir 把当前目录改过来。
      

  3.   

    楼主这么肯定绝对路径没有搞错,那就不清楚了,不会是NTFS权限什么的关系吧。
      

  4.   

      我试过了,还是不行,路径我没有指定,放在exe一起,但是问题还是一样的!真心奇怪了
      

  5.   

    那么还可能DppApi.dll会调用其他的dll,你没放在一起,一样是报找不到该dll的错误。
      

  6.   

    哈哈,这问题多半是提供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,然后看看依赖项里是否有问号,如果有,那就是它了
      

  7.   

    你要跟那个公司的客服联系看看是不是他依赖的dll出错了那个公司应该有说明说怎么用的
      

  8.   

    刚刚看了一下,没有问号吗,应该都调用了,没有引用其他的DLL,太奇怪了!都找不到错误所在
      

  9.   

    所谓的经验就是从吃过的苦头中来的。
    老马(myjian )说的没错,这是非常迷惑人的一个错误提示。
      

  10.   

    经验真的就是吃过的苦头中来的,哈哈.昨天晚上调试了一天,总是搞定了,真心被他忽悠惨了,真心是dll内部出现问题!谢谢老马兄弟了!
      

  11.   


    主要原因在于dll的初始化失败, 被引用的dll所引用的其它dll只是导致失败的其中一个原因
    还有其它导致dll失败的原因, 但基本都是 DllEntry 入口函数没能返回非0....
    还有正常的dll函数没法正常call...lz把你的exe编译后再试一下
      

  12.   

    如果你引用的dll有其他的依赖不存在也会报这个错误的
      

  13.   

    楼上有很多大牛 长相思 www.87zhibo.com
      

  14.   

    这DLL,感觉真不是这么玩的。好歹也封装成COM组件啊。
      

  15.   

    放在系统的文件下C:\WINDOWS\system32,我的系统是xp的,不知道你是哪个系统,你可以试一下,我是这么放的可以调用
      

  16.   

    补充一下,在调用dll的时候把路径全都去掉,只要这样调用就可以了Declare Function dsc_EnumSearch Lib "NECI.dll" (ByVal server_ip As Long, ByVal lpenumproc As Long) As Long
      

  17.   

    最好DLL的路径中不要有中文。
      

  18.   

    把DLL反编译一下,看看还引用了哪些DLL和外部资源
      

  19.   

     哈哈, 这问题我也碰到过,dll又调另外一个dll