我用vb编写了一个标准dll(YSSYC.dll)数据打包工作,调用C++写的dll(DevDll.dll)(别人开发的)通讯dll工作,并创建了应用程序。在装用vb环境
的机器上都能正常工作,可是将代码打包后,考到没有vb的环境的机器上就马上报错,经过设置断点,发现在没有vb环境的情况下C++的dll没有被调用,
也就是没有运行,所以当调用到C++ dll里函数的那一步,不是抱错,要马就是程序自动退出,请问我该怎样解决这个问题。

解决方案 »

  1.   

    我用的是vb自带的打包工具。现在就是不知道缺少什么文件呀?我已用的东西也只有两三个呀。asycfilt.dll,COMCAT.DLL,DevDll.dll,MSFLXGRD.OCX
    msvbvm60.dll,msvcrt.dll,oleaut32.dll,olepro32.dll,VB6STKIT.DLL,YSSYC.dll,scrrun.dll
    其中红的是自己的dll。其他都是打包生成的。不知还需要什么文件。
    应用程序很简单,主要是dll数据发送。
      

  2.   

    试试用SetupFactory 7.0.1 汉化版(修正)打包。打包的时候有一个导入你的VB工程,SetupFactory会自动收集操作系统附件、VB运行库和OCX控件之类的东西,如果没有收集到你自己的DLL,可以手工添加到SetupFactory工程中,然后在文件属性中选择安装到c:\windows\system32下面。  
    下载地址:http://download.zol.com.cn/detail/9/89213.shtml
      

  3.   

    用 Scrounge.exe 查看下调用了那些DLL
      

  4.   

    vb自带的打包工具打不全。建议用Visual Studio Installer打包试试。
    再要么是dll没有注册
      

  5.   

    问题还是没有解决.我把机器重装后也不能调用了,我在网上找了相关的资料.好像要采用vb动态调用dll.
    Public Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
    我采用的都是静态调用的方法.所以当vb启动后就无法调用vc的dll了.不知是不是这个原因.正在试.
    忠心感谢各位.
      

  6.   

    这个问题是环境问题
    用VS6.0完全安装以后的一个小工具Dependency Walker打开Dll 
    看这个Dll依存的都有哪些 拷贝过来就行