| 发表于:2008-01-19 20:57:216楼 得分:8 |
楼主可以去查一下com的原理和思想。 vb中的类和对象都是基于com的,ocx和activex都是com技术应用的产物。 com为每一个类生成一个guid(全局唯一标识符),你每次重新生成不同的ocx就需要新的guid注册,这样是为了保证组件对象的兼容性。 com为了保证这样的兼容(其实就是要保证被调用的对象在版本变化后,调用者调用它不会出问题),采用了为每个类生成不同的id来标识,以及把接口和实现分开的形式。 如果在生成的时候选择严格的二进制兼容,那么在接口不变的情况下就可以不用重新注册。 dll里面的接口改变了也需要重新注册的,不然很容易出问题,要么就为不同版本的dll文件做不同的命名,不能直接替换。 | | |
|