如果我的COM组件的CLSID和另外一个程序的重复了怎么办?

解决方案 »

  1.   

    怎么会出现这种情况呢?
    这个东西是全球唯一~~我看,这两个com都是你写的,对不对?
      

  2.   

    大家讨论一下,如果哪天GUID码用完了,那世界末日是不是就到了?!
      

  3.   

    这不可能,人是不会拥有这么多记忆的,我们假设每个人都有背诵圆周率100万位的记忆来记忆他用过的软件,每个软件用到的控件的GUID都不相同,而每个人每天用的软件都不相同,就这样使用几千年,GUID都用不完。
    而几千年后GUID早更新了不知几代了
      

  4.   

    好像也有人这么举例说GUID码足够给地球上每一粒沙子分配一个ID ... 这么可怕.....
      

  5.   

    COM 规范采用了 128 位全局唯一标识符 GUID 来标识对象和接口,这是一个随机数,并不需要专门机构进行分配和管理。因为 GUID 是个随机数,所以并不绝对保证唯一性,但发生标识符相重的可能性非常小。从理论上讲,如果一台机器每秒产生 10000000 个 GUID,则可以保证(概率意义上)的 3240 年不重复)。
      

  6.   

    guid还和机器有关,除非自己修改,否则碰撞概率极微
      

  7.   

    GUID也有类似于2k虫的问题,通过加长位数可以解决,不过估计也没有什么软件能在几千年后继续使用而不需要修改的
      

  8.   

    COM技术内幕有说到,生成GUID时48位会取网卡地址(全球唯一),和时间值小到纳秒,再取其他数,可以保证不重复,等到重复时,不知道还有没有人在用COM,甚至电脑也不知道还有没有人在用
      

  9.   

    GUID并不完全是一个随机数,它通过日期MAC地址和一些随机数之类的东西产生的。几乎可以说是不会重复。
      

  10.   

    同意楼上的说法,不过我们如果开发过COM的注册部分,就会知道,新建的一定会覆盖旧的注册表选项
      

  11.   

    guid的生成因素有网卡,系统当前时间,还有其它相关信息。理论是用不完的。最算用完了,我不关我们的事了。
      

  12.   

    重新创建一个,或手工随便改改就可以了.你只要保证你自己做的不重复就可以了,当然,要改的位数太多了,我是怕你改的和微软的系统才com对象一样了.
      

  13.   

    重新创建一个,或手工随便改改就可以了.你只要保证你自己做的不重复就可以了,当然,要改的位数太多了,我是怕你改的和微软的系统com对象一样了.比如:{00000300-0000-0000-C000-000000000046}等,可不能用.