我用ATL写了一个DLL,在多数机器上都可以注册,但是有几台机器就是注册不了,不知道是怎么回事,可能是什么原因引起的?请高手指点

解决方案 »

  1.   

    一般regsvr32注册DLL控件失败的原因是由于该控件所依赖的其他DLL不存在。
    你可以在那几台不能注册的机器上,用VC自带的Depends工具检查一下该控件,如果有某个DLL不存在,Depends会用红色标记该缺失的DLL
      

  2.   

    楼上地说得很对,很多情况都是这样的,不过有的时候即使注册上了也不能用,原因是:1.依赖的dll必须存在,系统路径或者当前路径
    2.COM和依赖的dll之间,dll和dll之间的接口不能有错(这往往版本问题造成的)
      

  3.   

    还有一个原因,是ATL的bug,如果你用Release编译组件,然后在中文目录下注册就会出现这个问题