组件是用MFC开发的进程内组件。我将odl文件中接口的uuid号改掉,重新编译,再注册。发现注册表中的id号仍然是原来的,这是为什么呢?难道还有别的地方记录组件的id号吗?

解决方案 »

  1.   

    工程的cpp文件里还有uuid的,也得一起改掉
      

  2.   

    注册表里的id号是改过来了,可是客户端在创建组件对象时却失败了(就是在调用CreateInstance函数时)
      

  3.   

    注册表里的id号是改过来了,可是客户端在创建组件对象时却失败了(就是在调用CreateInstance函数时)
      

  4.   

    你仔细检查下你改的odl文件中的uuid与cpp修改的是否一致。
      

  5.   

    弹出的消息是“Unhandled exception in ViewMfcDLL.exe(KERNEL32.DLL):0xE06D7363:Microsoft C++ Exception”。客户端中Createinstance函数的返回值是-2147221231
      

  6.   

    组件的CLSID和接口的ID不能改的,否则COM组件开发的优势就没有了。
    其实修改CLSID是没有意义的
      

  7.   

    你的修改是可能是违规的,因为控件的ID是空间+时间来组成的。空间上,是根据创建控件工程的电脑的网卡来算生成的。时间上,是以100NS为单位,记录的当时的绝对时间,可以保证千年以内没重复,楼主,你这么搞,估计控件自身会进行验证,你那关都过不了
      

  8.   

    我最近也在做控件和com,这样的修改一般都很难,我也没有找到相应的方法。貌似很难,一般来说就在建立工程的时候就要建好