引用应用程序目录下的top.dll中的一个函数,为什么总是提示找不到top.dll这个文件,如果放到系统目录就不会这样了,不是说应用程序目录优先吗?同样我早先编写的一个程序也是调用 应用程序目录下的top.dll,却一点也没有事,真是奇怪。

解决方案 »

  1.   

    如果它程序里面就是写明了"C:\Windows\System32\top.dll"呢?
      

  2.   

    top.dll这个文件还用到其它dll么
      

  3.   

    一般当然就是 app.path 最为优先, 再来就是 System32 再来就是 Windows主目录?:\windows但是有些DLL OCX 它就非得放在 System32 下否则无法调用, 也因此, 我经常在强调, 注册控件前最好将那些dll ocx 先拷到 system32下后再Regsvr32注册.
      

  4.   

    top.dll不再用到其他
    问题还是没有解决
      

  5.   

    我只能告诉你找不到文件的原因基本上都是LoadLibrary加载失败。
    程序在你自己手上,情况也只有你自己最清楚,我们也帮不了你更多的东西了
      

  6.   

    http://userinterface.cnblogs.com/archive/2005/10/25/124390.html 
    另外就是看看这个~
      

  7.   

    谢谢各位,问题解决了,但我还是不明白症结所在,按照http://userinterface.cnblogs.com/archive/2005/10/25/124390.html 的提示,修改DebugStartupOption=0,无论怎么改,改=0,改=1,或者略去,毛病再也没有出来了,我后来还补了sp6,应该说和sp6也没有关系,所有目前还是谜题
     
      

  8.   

    如果用相对路径声明,那么当前路径的值就很重要:
    ·如果先打开VB,再通过对话框打开你的工程,查看一下CurDir()的值;
    ·直接双击vbp文件打开工程,再查看一下CurDir()的值;
    你会发现通常上面两个值不等!不要想当然地假设当前路径。
    就算你编译成EXE,如果我给该EXE创建一个快捷方式,然后在快捷方式指定了起始位置,那么程序运行后的当前路径也可以不等于EXE所在目录。就是因为系统目录总是会被搜索,所以大家都喜欢将dll放在系统目录下。
      

  9.   

    结帖,给分理由:
    Tiger_Zhao :20 仁兄给出的答案使我明白当前路径不是想当然的执行文件所在目录,最终促使我放弃把Dll文件放在应用程序所在目录。
    yinweihong :10 朋友给出的提示使我眼前一亮,曾认为可以企及问题的关键,不过反复验证后,还是觉得不是那么回事。
    再次感谢回贴的所有朋友。