用vc写的Com组件也存在这个问题,这是维护Com组件的一致性,需重新注册。

解决方案 »

  1.   

    I have never meet this problem before!Which language do you use in "我的主程序".I think you may use one source file of the COM, so when the source file changed , you have to recompile. Otherwise this should not occur.
      

  2.   

    我的主程序是VC。  在这里我使用的Com组件有用Vb做的,也有用VC做的。  VC做的组件不管编译几次,主程序照样能正确运行。  VB做的组件只要编译一次,主程序运行就会出错。
      

  3.   

    另外,调用方式是用#import,使用智能指针。
      

  4.   

    我用VB写ACTIVEXDLL时,如果这个DLL重新编译,我的应用程序也得重新编译,不过你如果用MTS+COM的方法来做,用MTS来管理COM,也许就不用重新编译了,我在ASP中也调用COM。
      

  5.   

    智能指针可用来管理com对象,自动调用addref, 自动调用queryinterface, 自动销毁对象等。
      

  6.   

    我用VB写ACTIVEXDLL时,如果这个DLL重新编译,我的应用程序也得重新编译,不过你如果用MTS+COM的方法来做,用MTS来管理COM,也许就不用重新编译了,我在ASP中也调用COM。
      

  7.   

    估计是很容易忽略的问题:
    在 Project Properities 对话框中,在 Component 页中 Version Compatibility 应该选择 Binary Compatibility。如果不选中 Binary Compatibility,VB 每次到要殷勤的为你的 COM 组件生成一个新的 CLSID!