VB调用DLL的问题,老找不到DLL文件前提:cd.dll在system32及exe所在的目录中我都复制了一份下面是一个调用加密码狗的API定义,我有两个工程,一个是别写好的。通过他制作的安装程序安装到c盘的某个位置(暂定为c:\titans\tomcat\bin吧,这里面也有cd.dll),能正常使用。
然后我另外写了个测试的程序test.exe,只有一个Form,复制了下面的代码,把public改成了private,不管把test.exe复制到那里都报:实时错误,找不到cd.dll
把cd.dll放一起也不行,但是只要复制到c:\titans\tomcat\bin(安装目录,这里面也有cd.dll)却能正常执行CheckDog 方法.=======================
Public Declare Function CheckDog Lib "cd.dll" () As Long
Public Declare Function WriteDog Lib "cd.dll" (ByVal sID As String, ByVal sAuth As String, ByVal sName As String, ByVal sVer As String, ByVal sO As String) As Long
Public Declare Function InitDog Lib "cd.dll" () As String
Public Declare Function ReadDog Lib "cd.dll" () As String

解决方案 »

  1.   

    可能cd.dll调了其他dll
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  2.   

    尝试直接加载库文件LoadLibrary(??)
      

  3.   


    可能cd.dll调了其他dll 
    ------------------------
      报错信息是: 运行时错误 '53':文件未找到: cd.dll
    LoadLibrary(??) 
    ------------------------
    原先的代码都不需要,况且复制到安装目录就正常注册一下,看行不行
    ---------------
    注册了,提示信息:LoadLibrary("E:\temp\CheckDog") 失败 - 找不到指定的模块。
      

  4.   

    你把CheckDog所有dll都复制到system32
      

  5.   

    可能是cd.dll库中使用了绝对路径
      

  6.   

    你把CheckDog所有dll都复制到system32 试过了,不行可能是cd.dll库中使用了绝对路径 上面已说了,VB提示是找不到cd.dll只有放在安装目录就可以,安装是动态的。
      

  7.   

    可能是该DLL,调用路径限定了 C:\
      

  8.   

    解决了,是由于cd.dll需要vc的运行库支持。
    真TMD不厚道,没有vc运行库支持为什么报cd.dll找不到呢
      

  9.   

    这种问题我以前也遇到过VB6的IDE在DLL加载失败时是报的"找不到文件".
      

  10.   

    我现在也遇到这个问题没有解决,请问楼主是如何解决的,把MFC DLL复制过去就行了吗?
      

  11.   

    哎,我也遇到了,很奇怪的是VB调试模式下运行正常,发布后就不成了,dll采用ATL,没有采用MFC,不需要任何第三方库,VB6调用VC的dll。采用绝对路径也不行