用VB制作了一个软件,生成的exe可执行文件在安装有VB软件的电脑里运行没有问题,但在没安装VB的电脑运行exe可执行文件就出现了这样一个出错对话框,图片见附件。
哪位高手帮帮忙啊,谢谢!!

解决方案 »

  1.   

    附件的图片好像看不了,提示的错误是这样的:
    Component ‘COMDLG32.OCX’or one of its dependencies not correctly registered: a file is missing or invalid
      

  2.   

    你使用了COMDLG32.OCX控件,也就是对话框控件,使用Active控件是要打包的,没打包,在没安装VB的电脑是由于相应的文件不存在,就出现了这样的问题-----解决方法:打包
      

  3.   

    在客户端将控件COMDLG32.OCX拷贝到你的程序目录中,双击COMDLG32.OCX,选C:\WINDOWS\system32\regsvr32.exe注册即可,不需要打包
      

  4.   

    把几个Dll 文件加进去就以了,先做一次安装包,在安装包中有所需的全部Dll文件,把它们考出来,交互式你的exe文件放在同一目录下就可以运行了。
      

  5.   

    大多情况都是DLL文件,考进去就好了
      

  6.   

    我也遇到这样的问题
    我的是DBGRID.OCX....
    不懂怎么做安装包 - - 
      

  7.   

    程序目录中,没有控件COMDLG32.OCX
      

  8.   

    用VB自带的打包工具打包,会把所引用到的DLL、ActiveX自动注册进去。
      

  9.   

    一般XP系统肯定有这样的控件文件的
    我在公司里做的软件就很少需要注册DLL
    除非用到像winsock这样的控件
      

  10.   


    细说缘由。1 为什么要打包
      控件运行需要至少两个条件:
    a. 目标机上有所需的库文件。
    b. 控件已经在注册表中注册。打包时,打包程序可以将你所有引用的文件都打入包内,并登记在 .lst 文件中。这样,在你安装时,安装程序就会自动解包复制文件,并在注册表中做必要的注册。2 为什么用 VB 自带打包程序,安装时会反复要求重启,却无法安装。
      问题的根源不在打包,而在 VB 自带的安装程序。这个安装程序是依赖于重新启动来更新正在运行的系统文件的,这是 Win98 等早期操作系统版本的做法。但 Win2K 以上的 NT 系统已经禁止这样做。所以,只要你的安装包中的系统文件(打包程序取自于本机),比目标机上正在运行的版本新,安装程序就会试图通过重启来更新。  解决的方法,使目标机的系统比打包工作机的版本新,例如目标机使用打了所有补丁的 WinXP,或者用较老版本的系统作打包工作机。我使用的是 Win98 老版。当然,如果你的目标机都是 WinXP 以上,你使用 Win2K 打包就没有问题。这样打出的包,安装时会提示,要安装的文件比机上的更旧,此时选择跳过即可。3 有时,安装时报告找不到文件
      这是因为目标机的权限设置不运行安装程序写临时文件夹,因此解压缩的文件没有写到缺省的位置。
      解决的方法,以管理员身份登录,取得最大的访问权限,或更改权限设置。  有时还会因为禁止了注册表写入,使得控件无法注册,安装后运行时报错。解决方法类似。
      

  11.   

    regsvr32 c:\winnt\system32\COMDLG32.OCX注册控件
      

  12.   

    网上搜一下这个dll  下载,手动注册,ok