mfc调用ocx控件升级

正常项目中,ocx控件的clsid是不会变化,保证调用方都能正确引用,比如web中是写死clsid引用等等。但有时候不清楚出于什么原因,三方控件经常升级,升级时候可能只修复或增加某些接口。此时提供的控件名称不变,但clsid变了。那么我们的项目如果更新引用升级的ocx呢

1)先确保三方控件能正常注册成功

2)mfc项目工程界面中ocx控件删除,此时可能ocx颜色已经是黑色的,因为可能取消注册控件了

3)删除项目中旧控件的包装类.h和.cpp

4)进入界面设置向导,对新控件IDC_UCZLZZYB1添加变量,此时会弹出要生成包装类,确认包装类还是原旧包装类,这样代码引用名称就不用修改,类文件名可以是旧包装类文件名后加1,如_uczlzzyb1.h。添加包装类后会再弹窗输入控件映射的变量名,此时可以点取消即可,因为是升级,就沿用原来的变量名,若是首次引用或已经彻底废弃旧包装类和不再使用,则正常操作即可。

5)项目中关于旧包装类的文件名引用全部改成新包装类名引用即可。这时候通过第4步不生成新控件映射变量引用的好处就体现出来了。即 //#include "uczlzzyb.h" -> #include "uczlzzyb1.h"

6)直接编译工程一般直接成功,最后升级编译后的程序进行测试即可。

posted @ 2022-08-24 16:30  晨光静默  阅读(96)  评论(0编辑  收藏  举报