假如我的VB工程文件在f:\VB\sales\下,我将一个Command.ocx控件和我的VB工程文件放在同一文件夹里,然后我在VB里的工程-->>部件   添加了这个控件,此时我就可以在VB里用这个控件,但是我将f:\VB\sales\改成f:\VB\aaa\(就是把文件夹改一改名)那么我的控件就不可以用,更不用说打包,一打包完,找开程序总是提示找不到控件
请高手指点我一下,教我怎样利用外部控件而不会出现上述问题。
我下载别人的程序源代码研究的时候,发现他使用外部控件时也不会出现上述原因。我真是搞不懂,请高手教一教我,因为本人正在做期中项目,急需要求解方法

解决方案 »

  1.   

    我在VB里的工程-->>部件   添加了这个控件此时我就可以在VB里用这个控件
    ___________________________________________________________________这里的OCX等控件都是COM,需要注册的,一旦你使用浏览控件文件添加成功后,
    系统会自动注册该控件,当然对该控件的物理文件路径也有记录。一旦你修改
    路径,根据注册信息当然由于找不到指定文件才报错。
      

  2.   

    在改变目录之前,将该控件反注册。修改之后,再将该控件在注册一次就行。
    注册使用命令行Regsvr32 文件名就行了。
      

  3.   

    你打包的时候将该ocx和exe程序放到一个文件夹下,不需要注册
      

  4.   

    这样就可以在程序代码里面田加注册的代码,最好在submain里面写,注册后在执行load代码!
       这样就可以在任何地方使用加载了!
      

  5.   

    像这种问题应该是打包程序解决的比如在installshield中就有自注册控件的功能,只要一安装,就会自动注册打包中的控件,和路径无关
      

  6.   

    放到system32下面注册比较好点
      

  7.   

    你在VB里的工程-->>部件 ,  添加控件的时候,vb会把这个控件注册,此时在注册表HKEY_CLASSES_ROOT\CLSID下会添加控件的相关记录,包括控件的uid,progid等,在InprocServer32项下,有一个默认的字符串会记录该控件的全路径,你改了文件夹的名称,程序运行时找不到该控件的正确路径了,此时需要重新注册控件.
    如果你用vb自带的打包工具打包,打包时如果控件路径变了,因为找不到控件,所以不会把控件打包在内的.打包前你必须正确注册控件,像你说的控件,在"开始\运行"里面直接输入"regsvr32 path"回车即可,“path”是你控件的全路径,包括名字,如“regsvr32 c:\test.dll”,或者你在输入“regsvr32 “(注意有空格)后直接把控件拖到运行窗口里面,然后回车。在命令行提示符窗口中同样操作。
    或者你改用别的打包工具,setup factory和.net代的windows install都可,比较简单,安装时会自动注册你的控件。