後從MFC工作我有VB6的ActiveX(例如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中,我只使用字符串MyActiveX.MainControl
來引用VB項目,所以我不明白爲什麼我應該重建我的MFC應用程序;甚至在重建我的C++ MFC應用程序之後,VB ActiveX仍未正確顯示。
在C++ MFC端實際使用的VB6 ActiveX中只有兩個函數。這就是爲什麼我刪除/移動了一些其他函數和變量,這些函數和變量只能在VB6 ActiveX中使用。所以我不知道爲什麼它停止正常顯示
嗨,謝謝你的回答。 VB6 ActiveX中只有兩個實際從C++ MFC端使用的函數。這就是爲什麼我刪除/移動了一些其他函數和變量,這些函數和變量只能在VB6 ActiveX中使用。所以我不確定爲什麼它停止正確顯示。 –
在OleViewer中檢查舊界面和新界面。只要你使用相同的DispIds,你就沒有問題。 – xMRi