今天得闲,刚好又要处理ocx向下兼容性的问题,于是仔细查看了一下造成问题的原因,做了些简单测试,不打算从原理分析,我们暂且从表象上分析.
[查资料] 相关书藉并未能直接找到答案. 【程序编程相关:[原创]命令行下可以解读TCP数据报内容】
[问题描述] 在使用mfc框架制作ocx时,存在向下兼容性问题. 在旧控件的某个接口添加property时,重新编译.你会发现原有的调用exe程序(vb编译所得)在调用该接口的method时会出错. why?按理,添加属性,不应该出现兼容问题. 将旧有调用程序源码调出,采用新ocx(tlb)关联,编译后,使用正常. 当然,上述做法显然有问题,实际上如果调用者并不需要新功能,他是没有义务来做此操作的. 所以,我们称之为向下兼容性问题.原因何在? 【推荐阅读:用Visual C++ 6.0模拟仿真生】
[分析 mfc框架代码] 看看mfc框架做了些什么. 【扩展信息:建立tcp/ip连接,vc6实现客户端(】
[分析ocx特性] activex control是一个很特殊的com,它使用了自动化技术.或者,更简单的说:它实现了idispatch接口.属性以及方法也当然是由idispath而来.我们当然应该从此接口的实现着手.idispatch的具体略过(书上都有),看看最关键的invoke,getidsofname.它要求每个方法/属性编号都有一个id号,通过名称找到id,然后查找相应的函数.这是idispatch的标准.好,我们暂时只需知道这一点.其它先不管.
... 下一页