能力值:
( LV2,RANK:10 )
|
-
-
2 楼
现在能修改了,但是光修改了这个ID,注册后并不能直接使用。
怎么做?
|
能力值:
( LV12,RANK:230 )
|
-
-
3 楼
那得看你怎么改的,怎么个不能使用法。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
我直接用pe工具把DLL的typelib导出来,然后把其中的GUID换成我自动生成的GUID,同时把控件名字也改了,然后把这个新的typelib替换之前的,保存为新的DLL,注册后,可以看到注册成了一个新控件。
但是我用OLE VIEWER打开这个控件时,报错不能创建实例;在VC中也不能添加对应的类。
是不是只改typelib中的这些GUID还不够?
|
能力值:
( LV12,RANK:230 )
|
-
-
5 楼
我没有这样改过,下面只是从ActiveX本身机制谈谈看法。
假设你现在只改CLSID,不改IID、LIBID。
你这样只修改typelib,照我看,是肯定不行的。DllGetClassObject里调IsEqualCLSID
时传递进去的形参之一你肯定没改吧。typelib是给脚本引擎看的,对于COM本身来说,有
没有它不是问题,仅仅相当于一个二进化的.h文件。问题是.c里引用CLSID时是编译进去的,
你改了.h有什么用,又没有重新编译。大致上就是这么个道理。
同样,如果你需要改IID、LIBID,也得同步改.c里的。我这里说.c是省事的说法,你自己理解
正确啊。
|
|
|