을 깨는 후 MFC에서 작동이 중단 (예를 들어 MyActiveX
)를 MFC에서 사용되는 :VB6 액티브 내가 VB6 액티브 X가 호환성
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 내에서만 사용되는 다른 함수와 변수를 제거하거나 이동했습니다. 따라서 왜 제대로 표시되지 않는지 잘 모르겠습니다.
안녕하세요, 귀하의 답변에 감사드립니다. C++ MFC에서 실제로 사용되는 VB6 ActiveX의 두 가지 기능 만 있습니다. 그래서 VB6 ActiveX 내에서만 사용되는 다른 함수와 변수를 제거하거나 이동했습니다. 그래서 왜 제대로 표시되지 않을지 잘 모르겠습니다. –
OleViewer에서 이전 인터페이스와 새 인터페이스를 확인하십시오. 동일한 DispIds를 사용하는 한 문제가 없습니다. – xMRi