我在自己机子做完的程序在自己的自己上运行没问题。但是发给没装VB的机子上就会有
MSCOMCT2.OCX 一个提示框 没注册是什么的‘
这个控件是VB自带的吗?
帮帮忙啊~!
谢谢先!

解决方案 »

  1.   

    事实上你少的不只这一个(我说的是你在别人机子上运行时)!不知道你打包没有!
    如果你没有打包而是直接把你的源程序拷过去的话,则你需要手动添加以下2个基本控件及一个DLL文件:
    COMCTL32.OCX
    mscomctl.ocx
    msvbvm60.dll (此为VB运行库)如果你自己还加了别的控件,则你都要加进来,比如你还用了一个通用对话框的控件(COMDLG32.OCX)。那你也要手动加进来!
    这些文件都可以在你的 X:\windows\system32 (X为系统盘)目录下找到!下面就是对它们进行手工注册了!
    就拿一个来说,其它的类似:
    你可以自己先用记事本输入以下内容:
    regsvr32 /S COMCTL32.OCX
    然后另存为.bat(批处理文件)并将此文件放入到COMCTL32.OCX所在的位置(就是你加入到自己的程序中来的控件所在的地方而不是X:\windows\system32中)然后你在别人机子上运行时先点击那个批处理文件就行!如果你注册了还是说缺少什么文件,你就再在你机子上搜索该文件,并把它加入到你的程序的目录中。注册方法和上面一样。你就在那个批处理文件中多写1条regsvr32 /s 之类的语句。后面的控件名就看你加入的是什么控件了!
      

  2.   

    补充:如果你对regsvr32不熟悉的话,可以进入DOS中查看使用方法.运行/cmd后输入regsvr32 /?
    就可以看到该命令的相关帮助了!
      

  3.   

    如果你已经打包了,那就得在你打包之前把所有的文件都先放好(就是你希望安装在用户的机子上时你的那些程序文件是如果摆放的就怎么放),该要的控件也要全加进去。如果你会用inno setup 5进行打包的话,那就可以在打包时产生的 Inno Setup 脚本(.iss文件)的 [Files]脚本段中加入如下语句:Source: "E:\Win-MASM\VsMenu\mscomctl.ocx"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: restartreplace sharedfile regserver说明:
    E:\Win-MASM\VsMenu\mscomctl.ocx是在你打包前你所放入的控件的路径及名称,如果你要注册的控件不只一个你就可以多加几条以上的控件注册语句,只是把控件名改一下就可(为了方便,所有程序所需要的控件你不可能分别放在不同的地方吧?)
    OK,问题说明结束!