2009-07-13 3 views
4

저는 오늘 VB6 프로젝트 중 하나에 OCX 파일을로드하려고했습니다. 레지스트리에서 COM 등록을 확인하는 방법을 가장 잘 알고 있으며, REGSVR32를 사용하여 여러 번 시도해 보았습니다. '프로젝트 -> 구성 요소'에서 구성 요소를로드하려고 할 때 VB6에서 계속 가져 오는 것은 'FilePath \ FileName.ocx'를로드 할 수 없습니다. 다른 사람이 전에 이것을 보았습니까? 그렇다면 그것을 고치는 방법은 있습니까?VB6 오류 - .ocx 파일을로드 할 수 없습니다.

답변

2

이것은 종속성 문제 일 수 있습니다. OCX에 필요한 다른 일부 구성 요소가 없습니다. 종속성 워커는 정적 종속성을 찾습니다.

+0

물론, 이것은 의존성 문제로 밝혀졌습니다. 내가 이걸 가지고 싸운 이후로 꽤 오랜 시간이 걸렸다. –

3

문제를 격리 도움이되는 팁 그냥 몇 ....는 OLEView

이름을 검사하여 컨트롤에

봐 :이 같은 '메뉴'와 같은 예약 된 단어 중 하나 인 경우, vb6이로드하지 못합니다. (vb6은 저장하고 다시로드하기 전까지는 행복하게 vb6을 사용하여 나쁜 이름을 가진 하나를 만들 수 있습니다.)

인터페이스를 검사합니다. 기능을 설명합니까? 손상되었거나 인증되지 않은 OCX가있을 수 있습니다.

ActiveX 컨트롤 테스트 컨테이너로로드하려고 시도하십시오 ... 가능하면 문제는 VB6 및 ocx가 아닙니다.

+0

가 OCX에서 파일 ->보기 TypeLib의를 사용하고 importlib 라인을주의 사항 :
는이 구문을 사용하여이 구성 요소를 등록 할 필요가 있습니다. 예를 들어 importlib ("oleguids3.tlb"); 이 tlb가 OCX를 참조하기 전에 dev 머신에 등록되어야 함을 의미합니다. 그 이유는 라이브러리가 OCX의 [외부] 인터페이스에 의해 참조되는 경우 IDE 시스템에 등록되어 있어야하거나 OCX를 IDE에서 사용할 수 없기 때문입니다. – wqw

0

"REGSVR32를 사용할 수 없음"이라고 말하면 파일 이름이에 성공했거나 오류 메시지가 나타납니다. 파일을 성공적으로 등록하면 CMB는 라이센스가없는 ocx에 대한 가능성이 있습니다.

0

라이센스를 제외하고 vb6에는 몇 가지 다른 트립 포인트가 있습니다. OCX가 VB6에서 개발 된 경우 특히입니다.

그렇다면 '공식적으로'시스템에 등록 된 버전이 사용중인 특정 ocx와 충돌 할 수 있습니다. 즉, 둘 다 동일한 고유 이름 (또는 classid)을 가질 수 있지만 사용하려고 시도하는 시스템은 등록 된 시스템에 설명 된 모든 기능을 구현하지 못할 수 있습니다 (예 : 덜 진화 된 버전). 이는 작성자가 컨트롤의 기능을 향상시키면서 바이너리 호환성을 유지하고자 할 때 발생합니다. 공용 인터페이스가 호환되는 한 vb는 classid를 다시 계산하지 않습니다.

특정 컨트롤을 강제로 등록 취소하여이를 수정할 수 있습니다 (실제로 컨트롤의 모든 인스턴스 등록 취소). (regsvr32/u control.ocx) 그런 다음 사용할 등록 파일을 다시 등록하십시오. 이 작업을 수행하거나 결과가 작동하지 않을 때 실행중인 VB6 인스턴스가 없는지 확인하십시오.

0

가 제어 누락 여부를 등록 할 수있는 다른 DLL 또는 OCX에 의존 할 수 있습니다

희망을 ... (당신의 작업 목록을 확인)이 자체 매니페스트 VB는 제어 것을보고 수로 당신은 사용하지 않으려 고 노력하고 있습니다. 그러나, 어떻게 당신이 의존성을 확인할 지 모르겠습니다. 내가 아는 한 종속성 워커는 정적 종속성을 식별합니다. COM 종속성을 식별 할 수 있는지 확실하지 않습니다.

2

최근에 비슷한 오류가 수정되었습니다. 이 경우 오류는 Visual Basic 프로젝트 (.vbp) 파일에있었습니다. 프로젝트 파일은 표준화 된 빌드 머신 외부에서 편집되었으며 OCX 구성 요소에 대한 참조가 포함되었습니다. 워크 스테이션 특정 경로 & 버전의 구성 요소를 포함합니다.

텍스트 편집기에서 프로젝트 파일을 편집하거나 버전 제어에서 작동중인 버전을 가져올 수 있습니다.

0

Ocx를 등록 해제 ocx 을 다시 등록한 다음 VB6에서 프로젝트를 다시로드하면 제대로 작동합니다.

모두 감사합니다.

0

등록을 취소하고 다시 등록하십시오. 는 OLEView에서

regsvr32 /i:design olch2x8.ocx 
관련 문제