描述:
问题描述:
现在客户A用VB做了个应用程序Demo.exe,该Demo.exe调用了 设备供应商A 提供的控件Control.ocx,该控件封装了对 设备供应商A 提供的机器设备的操作接口。
现在问题是:
我们市场人员已经说服客户A使用我们的机器设备,但是有个条件,就是我们必须提供一个和设备供应商A 提供的控件Control.ocx一摸一样的控件,既接口完全一样,同时该demo.exe不能从新编译,既只要将设备供应商A的control.ocx换成我们的Control.ocx,同时使用我们的机器设备,客户A的demo程序就可以运行起来。现在我们提供了和设备供应商A的Control.ocx一摸一样的接口函数,同时我们的Control.ocx的guid 也是和设备供应商A的Control.ocx的guid一样的,但是用我们的Control.ocx替换设备供应商A的Control.ocx后,demo.exe就是运行出错,我想问问ocx能做到和动态加载的dll一样的互换性么?
解决方案1:
只要接口不冲突应该问题
这也是com技术的本意
我想应该是可以的,关键是新控件必须完全兼容老控件,然后重新注册控件。
解决方案3:控件的属性呢,是不是也是一样的呢,vb装载控件应该先load控件属性的。
解决方案4:注意兼容和guid
解决方案5:可以,但接口必须能兼容,就好像Control.ocx要升级一样,只要保持原有的GUID和兼容旧接口就可以了
解决方案6:
这个能替换吗?