我的vb打开一个昨天做的程序出现“不能加载mscomct2.dll”控件,vb重装也不行!!!

解决方案 »

  1.   

    PB中动态注册ocx控件本程序实现以下功能:1、自动注册WndShow.ocx,Mschrt20.ocx,mscomctl.ocx控件
    注意:
    请在程序运行前将WndShow.ocx,Mschrt20.ocx,mscomctl.ocx控件拷贝到运行目录下的source文件夹下
    string ls_winpath //windows路径
    string ls_wndshow //wndshow.ocx文件路径
    string ls_Mschar20 //MsChrt20.ocx文件路径
    string ls_MscomCtl //MsconCtl.ocx文件路径 //获取系统路径
    RegistryGet("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion",&
    "SystemRoot", RegString!,ls_winpath)//设置系统中ocx文件路径
    ls_wndshow = ls_winpath + "\system\WndShow.ocx"
    ls_Mschar20 = ls_winpath + "\system\Mschrt20.ocx"
    ls_MscomCtl = ls_winpath + "\system\mscomctl.ocx"//如果文件Wndshow.ocx不存在
    if NOT FileExists(ls_wndshow) then
      //拷贝文件到系统中
      CopyFileA("source\WndShow.ocx",ls_wndshow,true)
    end if
    //注册ocx文件
    run("regsvr32.exe /s WndShow.ocx")//如果文件Mschrt20.ocx不存在
    if NOT FileExists(ls_Mschar20) then
      //拷贝文件到系统中
      CopyFileA("source\Mschrt20.ocx",ls_wndshow,true)
    end if
    //注册ocx文件
    run("regsvr32.exe /s Mschrt20.ocx")//如果文件mscomctl.ocx不存在
    if NOT FileExists(ls_MscomCtl) then
      //拷贝文件到系统中
      CopyFileA("source\mscomctl.ocx",ls_wndshow,true)
    end if
    //注册ocx文件
    run("regsvr32.exe /s mscomctl.ocx")
     
      

  2.   


    --------------------------------------------------------------------------------
     
    Regsvr32.exe注册控件的具体用法 EXE文件中的类注策可以双击该文件,即刻注策。或用命令行(XXX.exe / regserver)注策DLL,OCX文件可用命令行 (REGSVR32.EXE /s xxx.dll 或 xxx.ocx)注策。 
    大批量注策时可以编一个批处理文件。或编程处理。 
    如果以前注策过,注策前要先反注策,EXE文件(xxx.exe /unregserver)DLL,OCX文件(regsvr32 /u /s xxx.dll ),否则会保留原信息。 
    还有一个比较方便的方法就是把Regsvr32.exe的快捷键拷到WINDOW目录下的SENDTO里,这样用鼠标右键点击文件然后在弹出的菜单里选发送到Regsvr32即可。 
     
      

  3.   

    《 VB5中注册控件三法 》   在VB中合理地利用控件能极大地提高程序开发的效率,但是许多人常遇到因控件未注册而无法使用的问题。下面就介绍几种注册控件的方法(假设待注册控件的文件名为MyCtrl.ocx)。 
      1.在VB5环境中直接注册 
      在VB5集成开发环境中,选择“工程/部件”菜单,弹出“部件”对话框。在“控件”页中包含有系统中所有已注册控件的列表,为了注册MyCtrl.ocx,可点击列表框旁边的“浏览”按钮,并在“添加ActiveX 控件”对话框中选中MyCtrl.ocx文件,按“确定”即可。这种方法的优点是注册完的控件可以直接加入到当前的工程中试用。但是有些拥有版权的控件不能用该方法直接注册。 
      2.利用REGSVR32工具注册 
      在VB5.0安装盘的ToolsRegutils目录下有三个用于注册OLE控件和DLL的工具,即REGSVR32.EXE、 REGOCX32.EXE和REGIT.EXE。 
      REGSVR32.EXE用于注册OLE Server,包括OLE控件和DLL;REGOCX32.EXE专用于注册OCX控件;REGIT.EXE用于一次注册多个OLE Server。以REGSVR32.EXE为例,为注册MyCtrlocx,只须在命令行输入REGSVR32 MyCtrl.ocx即可。而输入REGSVR32 /u MyCtrl.ocx则可以注销该控件。与方法1类似,有些控件不能直接用该法注册。 
      3.直接在注册表中进行注册 
      事实上,在Windows系统中对控件的注册,就是在系统注册表的主键HKEY_CLASSES_ROOT下添加相应控件类的信息,如类的ID和版权信息等。这些信息是由系统维护的,用户通常无法直接修改。不过,不少控件的安装程序能通过自动修改注册表进行注册。还有一些控件的安装盘中提供了手工修改注册表的方法。例如,升级到VB5之后,VB4中的几个常用的控件,如Threed32.ocx、MSOutl32.ocx等都无法在开发环境中正常使用。其实,在VB5安装盘的ToolsControls目录下有一个Vbctrls.reg的注册文件,双击该文件后就可以将版权信息添加到注册表中,从而实现控件的注册。