none
ATL编写ActiveX控件的CLSID问题 RRS feed

  • 常规讨论

  • 通过ATL写的控件,最后生成了a.dll,在打成CAB包时有一个inf的配置文件,有一段内容如下:

    [a.dll]
    file-win32-x86=thiscab   
    RegisterServer=yes
    clsid={*****}                         
    DestDir=11   
    FileVersion=1,0,0,1

    这里面的clsid是根据哪里选择的?看到网上说是idl文件中的coclass中的uuid,我试过了,有一个问题,我在dll里面自己添加了多个atl简单对象myActive1,myActive2,myActive3,这样在idl文件中就生成了三个coclass段,有三个uuid,那么打包时的这个clsid到底应该选哪个呢?我尝试过任选一个简单对象的uuid作为clsid,在IE7中如果我用到了那个简单对象中定义的方法,那么IE就会提示一次让我安装控件,用到另一个接口时,又会提示一次。在IE6中不会,安装一次,其他接口都可以用。

    2010年3月28日 14:59