我有MyActiveX
从 MFC 使用的 VB6 ActiveX(例如):
m_pControl = new CWnd;
m_pControl->CreateControl("MyActiveX.MainControl",
"",
WS_VISIBLE,
rc,
this,
5000,
NULL,
FALSE,
NULL);
当我删除一些未使用的函数或移动变量(未在 VB ActiveX 之外使用)时,VB6 会发出有关破坏兼容性的警告。我选择破坏兼容性,但现在 VB6 ActiveX 无法从 MFC 应用程序中正确显示。
据我了解,破坏兼容性将为接口和类型库创建新的 UUID。只要我能做点什么让它再次工作就可以了,而且由于我使用的是字符串 ProgID MyActiveX.MainControl
,我认为我的 MFC 应用程序不应该受到影响。
编辑:
据我了解Resetting project compatibility in vb6,只要我重建引用它的项目,破坏兼容性就可以了。但是在 MFC 中,我只使用字符串来引用 VB 项目,MyActiveX.MainControl
所以我不明白为什么要重建我的 MFC 应用程序;即使在重建我的 C++ MFC 应用程序之后,VB ActiveX 仍然没有正确显示。
VB6 ActiveX 中只有两个函数在 C++ MFC 端实际使用。这就是为什么我删除/移动了一些仅在 VB6 ActiveX 中使用的其他函数和变量。所以我不确定为什么它停止正确显示