level 1
旧版的OCX功能少,新版的OCX功能上有修改,现在的问题,如何将新的OCX替换程序里旧的OCX?
打开各个窗体,删除全部旧版OCX调出的控件,再打开部件,删除旧版COX;然后加新版的OCX,最后还要一个一个找到每个窗口,将控件加上,问题上是可以,但这种方法窗口一多会累死人。有没有简单可行的方法呀。
直接将部件OCX删件,会报错;
在文件夹中,将新版OCX复制替换旧版,再打开工程,又报错,怎么处理呀……
2023年10月17日 00点10分
1
level 13
ocx的工程属性中可以设置工程和二进制兼容,兼容后新ocx只要重新注册就可以。有时ocx注册版本太多会导致注册表问题,会导致无法注册,就得先删除旧ocx,清理注册表
2023年10月17日 03点10分
2
@隨風🍁缒夢 如果选择工程兼容,每次重新编译ocx后,引用的exe工程也要重新编译。 如果选择二进制兼容,就不需要重新编译exe
2023年10月17日 04点10分
先将新的OCX复制过来,替换了旧的OCX,OCX文件名一样。 regsvr32 /u E:\软件\abcd.ocx (旧OCX) regsvr32 E:\软件\abcd.ocx (新OCX) 再打开工程文件,一样弹出报错,怎么回事呀
2023年10月17日 04点10分
@春秋一文人 你ocx编译时没有选择工程兼容,重新编译abcd.ocx
2023年10月17日 04点10分
@隨風🍁缒夢 如果不行就建议清理下注册表失效的ocx项,windows优化大师清理后再注册新ocx
2023年10月17日 04点10分
level 1
感谢各位的指点,目前问题已经解决。
为了让新人以后少走弯路,现在将解决的详细步骤写出来:
===================================================================
新控件替换旧控件的操作
1、复制“新.OCX”和“新.OCA”(两个文件)替换“旧.OCX”和“旧.OCA”(两个文件);
2、打开CMD,运行删除旧控件的注册信息,再执行注册新控件的注册信息;
regsvr32 /u 旧.OCX
regsvr32 新.OCX
3、打开工程VBP文件;
出现报错提示:(是、否、帮助);选择“否”后再点“确定”;
4、选“工程”-“部件”,点“浏览”打开“新.OCX”,“确定”后点“保存”工程文件;然后退出工程文件。
5、重新打开工程文件
“新.OCX”就替换“旧.OCX”成功了!
====================================================================
2023年10月18日 02点10分
3
level 7
用注册表编辑器在注册表里查找ocx的版本,然后用文本编辑器打开.v
bp
文件,修改.vbp文件里的版本为一致即可。
2023年10月30日 22点10分
4