打包后在其他机器上安装,运行报错: 
run-time   error   '339' 
component   'MSDATGRD.OCX'   or   one   of   its   dependencies   not   correctly   registered:a   fiel   is   missing   or   invalid 
应该是'MSDATGRD.OCX'   控件没有注册吧。具体应该怎么做呢?才能在别的机器上正常运行,用户不知道控件注册这些东西,只会安装使用。 
谢谢大家~

解决方案 »

  1.   

    打包的时候将MSDATGRD.OCX打包进去,安装程序会自动注册。建议用setupfactory打包。
         
      

  2.   

    使用打包安装工具:Setup       Factory       7.0.1       汉化版(修正)       不提示。自动识别版本问题,若版本高就自动覆盖,版本低就不复制。   
    下载地址:http://download.zol.com.cn/detail/9/89213.shtml
      

  3.   

    谢谢,我试试
    我把MSDATGRD.OCX拷贝到要打包的文件里,然后一起打包就可以了吧?
      

  4.   

    应该可以,用setupfactory打包的时候,右键单击文件选择最下面“属性”,然后找到注册COM组件。
      

  5.   

    如果不大包的话,建议做一个批处理。进行注册。bat文件 的内容:regsvr32 MSDATGRD.OCX  。说明bat文件和 MSDATGRD.OCX  必须在 同一目录。    
      

  6.   

    在打包时需要将所用到的插件全部放进去,SetupFactory打包工具还挺好用,会自动将程序所用到的支持文件全部引入进来,楼主可以选择其中的必要文件进行打包。
      

  7.   

    to chenjl1031 :
    我试了一下,我用setupfactory 7.0,创建工程把文件加进来后,右键单击文件选择最下面“文件属性”,然后选“高级”,有一项OLE/ACTIVEX,选中其中的“注册COM接口”。但是点“确定”后提示:"注册COM接口设置对于以下文件已被禁用,它不支持DLLRegisterSever"。不知这是什么原因。最后我加了一个.bat文件,regsvr32   MSDATGRD.OCX;然后将该文件和程序一起打包。这样问题解决了。
    谢谢大家~~~~~~
    一会儿给大家加分!!!!
      

  8.   

    to 8250089: 
        这个问题我碰到过。还有一个办法可以解决,可以避免你手工注册,那就是添加打包文件的时候有一个选择导入你的VB工程,如果你的VB工程中使用了MSDATGRD.OCX控件,那么setupfactory会自动搜集你所使用的所有控件并注册;这样导入进来的控件,在文件属性中可以看到有关安装时要求注册的信息。   
      

  9.   

    也可以使用InstallShield,在微软的网站上有相关的MergeModule可下载,可自动安装后进行注册
      

  10.   

    一是打包时加上'MSDATGRD.OCX'
    二是拷贝上'MSDATGRD.OCX'到c:\windows\system32,用regsvr32 c:\windows\system32\msdatgrd.ocx 即可