2017-01-10 8 views
1

ActiveX 컨트롤이 vb6에서 작성되었습니다. 클라이언트가 클래스 ID를 변경하고 vb6에 대한 지식이 없으므로 ActiveX의 클래스 ID를 결정하는 데 도움을주십시오.vb6에서 만든 ActiveX의 클래스 ID를 변경하는 방법

나는 인터넷에서 많은 것을 검색했다. 그러나 아무 소용이 없습니다.

C++ 은 '.idl'파일에 언급되어 있습니다. 그러나 vb6에는 전혀 몰라요.

미리 감사드립니다.

+1

VB6 및 소스 코드를 사용하여 컨트롤을 다시 빌드 할 수 있습니까? –

+0

네, @ 짐 맥. 나는 둘 다 가지고있다. –

답변

4

프로젝트를 VB6에로드 한 후 Project... Properties을 열고 구성 요소 탭을 확인하십시오. Version CompatibilityBinary으로 설정된 경우 VB는 동일한 CLSID를 유지하려고 시도합니다 (모델이 있다고 가정). 이 값을 No Compatibility으로 변경하거나 인터페이스를 변경하면 VB는 컴파일 할 때 새 CLSID를 할당합니다.

+0

@ 감사의 묶음, 그것은 효과가있었습니다. 하지만 Windows 레지스트리에서 새 클래스 ID를 확인하는 방법은 무엇입니까? –

+1

@ImranKhanHunzai 한 가지 방법은 Regsvr32를 사용하여 레지스트리를 등록하고 레지스트리의 CLSID를 공개 이름으로 검색하는 것입니다. 문제가 해결되면 등록을 취소 할 수 있습니다. RegHacker를 사용하여 EXE를 볼 수도 있지만 CLSID는 '친숙한'형식이 아닙니다. 좀 더 직관적 인 방법이있을 수 있지만 필자는 이렇게하지 않아도됩니다. –

+2

VB6과 함께 제공되는 OLE보기 도구를 사용하여 컴파일 된 DLL/OCX의 형식 라이브러리를 검사 할 수도 있습니다. 표시된 형식은 MIDL 구문입니다. – Bob77

관련 문제