Hi,在 VB6 的开发工具里面直接点 Run -> Start 或 Run -> Start with full compile 的时候,可以正常启动到应用程序 TestVB.exe, 但是一运行到调用 C# 的 dll 的地方,就出错了,提示 Automation error, Cannot find the file specified.但是,如果在 VB6 把生成的 TestVB.exe 直接复制到与 C# 的 dll 在同一个目录再运行,就可以正常执行与调用 dll,--------------------------------请问,在 VB6 里面点 Run -> Start 的时候,为什么它会提示找不到 dll? 
另外,VB6 可否在工具里面设置一些环境变量来指定 dll 的目录?看了 VB6 所有菜单都没有这一项(VC好像有)。请帮忙指点,谢谢。

解决方案 »

  1.   

    你得先注册一下DLL,或是复制到system目录下。跟环境变量没关系
      

  2.   


    试了注册与复制到 windows/system32 目录都不行,请再指点一下。
      

  3.   

    VB6在开发环境中运行,App.Path返回VB所在的路径。
      

  4.   


    其实是这样,把 TestVB.exe 放在同 dll 目录下,执行全部正常。但是,现在有要求在 VB 开发工具下,使用 Run -> Start 要一样可以正常执行与找到 dll 。请帮忙,我试过把 dll 直接复制到 vb 的 project (vbp)目录下,点 Run -> Start 还是一样。 
      

  5.   

    做一点特殊处理:Function InDebugMode() As Boolean
        OnError Goto ErrProc:
        Debug.Print 1 / 0
        InDebugMode = False
        Exit Function
    ErrProc:
        InDebugMode = True
    End Function在主程序中
    If InDebugMode Then
        使用一个硬编码的路径
    Else
        使用App.Path找相对路径
    End If
      

  6.   


    如果不改 VB 程序,可否用其它方法实现??
    现在怀疑 VB 在执行 Run -> Start 弹出来的 Exe 窗口并没有在 Windows 任何目录下生成该 exe ??
      

  7.   

    你那写的是COM dll吧,注册一下啊。如果你说在程序同一目录可以,可以改一下C#生成路径到VB工程下
      

  8.   


    我已经把 dll 直接复制到 VB 工程下了,但是 Run -> Start 还是一样找不到这些 dll. 
    (如果直接把生成出来的 ExE 双击打开,却可以找到这些 dll 并成功执行)但是很奇怪,用 Run -> Start 这种方式却可以找到 VB 工程下的 ini 文件,有点搞不明白。
      

  9.   

    vb的bug
    有时候会出现运行时返回的目录不是当前程序的目录的情况