OCX 파일로 변환하려는 100 개 이상의 내 보낸 함수가있는 C++ DLL이 있습니다.기본 클래스가 아닌 ActiveX 컨트롤 (.ocx)에서 함수를 내보내려면 어떻게합니까?
BEGIN_DISPATCH_MAP(CmyCtrl, COleControl)
DISP_FUNCTION_ID(CmyCtrl, "AboutBox", DISPID_ABOUTBOX, AboutBox, VT_EMPTY, VTS_NONE)
END_DISPATCH_MAP()
을 적절한 IDL 정의를 사용 : 그러나, 나는에만이 작업을 수행하여 (비주얼 스튜디오 10 ActiveX 컨트롤 마법사 CmyCtrl라고도 함) 메인 클래스에 상주 OCX에서 기능을 내보내는 방법을 알고있다.
큰 프로젝트 전체를 구조 조정하고 모든 함수 정의 (20 개 정도의 파일에 걸쳐 있음)를 클래스로 옮기는 데별로 열의가 없습니다. 컨트롤이 사용될 VB6에서 Intellisense 등을 완벽하게 지원하는 OCX에서 클래스에없는 함수를 내보낼 수 있습니까? 어떻게해야합니까? 그리고 무엇을 명심해야합니까?
확실하게 DLL로 변환하고 싶습니다. (OCX가 아님) - VB6을 사용하려면 ActiveX DLL이어야합니다. –
실제로 OCX 파일을 의미합니다. 이것은 실제로 COM DLL이며 다른 확장입니다. 이전에이 작업을 수행했으며 VB6에서도 훌륭하게 작동합니다. 난 그냥 내부에 대해 잘 모르기 때문에 마법사에서 생성 한 템플릿을 사용해야합니다. –
DLL 파일 확장명은 규칙을 사용하여 컨트롤 (단순 클래스 만)을 제공하지 않는 COM DLL에 사용됩니다. 제어 라이브러리 인 경우에만 OCX로 이름을 지정하십시오. – Bob77