一次软件版本升级后,出现了无法找到dll文件的问题。版本升级修改的部分和此dll文件无关
该dll文件和exe文件处于同一目录中,定义如下
Declare Function vbOpenDriver Lib "vbCanIF.dll" Alias "_vbOpenDriver@0" () As Byte以前一直工作正常,但是现在调用vbOpenDriver 时总是提示"file not found"
如果将定义 Lib "vbCanIF.dll"改为绝对路径就没有问题谁知道是什么原因?

解决方案 »

  1.   

    1.会不会在system32下有相同的文件名?
    2.一些外部的DLL是要区分大小写的,所以要注意文件名的大小写
      

  2.   

    文件名大小写应该不存在问题,Windows 操作系统的文件名不分大小写。我不知道你的函数声明语句是在哪里执行的,在此之前是否有设置缺省路径的操作。放到系统路径是一个好的解决方法。
      

  3.   

    标准 DLL 文件不需要注册,也无法注册。
      

  4.   

    放到system和system32下,仍然不行,系统环境变量的path已经指向了这两个目录
      

  5.   

    如果vb在加载dll(LoadLibrary)过程中遇到错误,它都会报 file not found的...
      

  6.   

    一些外部DLL是区分大小写的! 以前调用过C++写的DLL就中过招了.
      

  7.   

    文件搜索顺序:
    1) 应用程序载入的目录
    2) 父进程的目录
    3) \System32
    4) \System
    5) Windows目录
    6) PATH环境变量中指定的目录
      

  8.   

    lzheng2001(1加1) ( ) 信誉:100  2006-05-12 09:39:00  得分: 0  
    >一些外部DLL是区分大小写的! 以前调用过C++写的DLL就中过招了.你说的是函数名吧?
      

  9.   

    你在主窗体的 Form_Initialize() 事件中调用一下这个函数,看看结果。估计是你的一些新代码更改了系统的缺省路径。
      

  10.   

    重新package了一下,做法和以前一样,但是问题不发生了,不知道是什么原因。不管怎么说感谢大家的参与,接分