VB6에서 생성 된 DLL/OCX 네임에 따라 형식 라이브러리 (GUID 및 버전)를 프로그래밍 방식으로 결정할 수있는 방법은 무엇입니까?형식 라이브러리에서 importlib 지시문 가져 오기
배경 : 참조 된 형식 라이브러리 중 하나에서 해당 종속성 중 하나를로드 할 수없는 프로젝트를 열면 VB6 IDE가 중단됩니다. 그러나 어떤 종속성을 충족시킬 수 없는지 또는 심지어 이 참조는 충족 될 수없는 종속성을가집니다. 이것은 내 회사에서 자주 발생하므로 VB6 IDE의 문제 해결 정보를 보완하려고합니다.
관련 세부 사항/시도 :
- 내가을 은 VB 소스 코드가 있습니다. 그 게 나에게 그 repo의 특정 개정판의 GUID와 버전을 알려주지 만, DLL/OCX/TLB 파일을 분석 할 때 어떤 버전의 repo가 있는지는 알지 못한다. 브랜치에 커밋 된) 주어진 DLL/OCX는에 해당합니다.
tlbinf32.dll
을 사용해 보았지만 가져 오기를 나열 할 수없는 것으로 보입니다.- PE에 대해 많이 알지는 못했지만 PE 뷰어에서 DLL 중 하나를 열었습니다. 가져 오기 섹션에
MSVBVM60.dll
만 표시됩니다. 이것은 VB6 생성 형식 라이브러리의 특수한 것으로 보입니다. 이들은MSVBVM60
에만 연결되지만 나머지 종속성에 대해서는 일종의 지연로드 메커니즘을 가지고 있습니다. - 내가 시도한 기존 도구 대부분도 정보를 제공하지 않습니다. 예를 들어, depends.exe는
MSVBVM60.dll
만을 찾습니다. - : Visual Studio와 함께 제공되는 유틸리티 인 OLEView는
importlib
지시문이 포함 된 IDL 파일을 생성합니다. VB가 IDL 파일을 사용하지 않는다는 것을 감안할 때, 어떻게 든 정보를 분명히 생성합니다. 그래서 가능합니다 - 어떻게 생각하는지 모르겠습니다.
정말로, OLEView가 그것을 수행하지 않았다면 불가능하다고 지금까지 포기했을 것입니다. 이 작업을 수행하는 방법에 대한 의견이 있으십니까?