我正在开发一个C#.NET应用程序,它使用外部开发的(我相信VB6)ActiveX控制器,我使用Aximp.exe从OCX文件导入。每次我获得新版本的OCX时,我都必须重新运行Aximp.exe,否则会有InvalidCastException
有消息:
此操作失败,因为QueryInterface调用COM 与IID接口的组件 '{X13535F4-2X96-4F87-80E6-X342AD8X3E7F}'因以下原因失败 错误:不支持此类接口(HRESULT异常:0x80004002 (E_NOINTERFACE))
当比较Oleview.exe的TypeLib输出对于不同版本的OCX时,唯一改变的是IID:s和版本号。 CLSID保持不变。
IID:s更改但CLSID:s在版本之间保持不变是正常的吗?
这个IID是否表示OCX没有启用“二进制兼容性”(如果真的是用VB6制作)?
在没有重新运行Axim.exe重建应用程序的情况下,我是否应该做些什么来保持与新版OCX的兼容性?