如何以編程方式確定給定的本機VB6生成的DLL/OCX所依賴的類型庫(GUID和版本)?從類型庫獲取importlib指令
對於背景:當打開一個引用的類型庫無法加載其依賴項之一的項目時,VB6 IDE扼流圈窒息,但它沒有那麼有用,無法說明哪個依賴項無法滿足 - 甚至該引用具有無法滿足的依賴性。這是我公司常見的情況,所以我試圖補充VB6 IDE糟糕的故障排除信息。
相關細節/嘗試:
- 我做有VB源代碼。這告訴我在回購中特定版本的GUID和版本,但是在分析DLL/OCX/TLB文件時,我不知道回購的哪個版本(如果有的話 - 可能來自分支或者可能永遠不會已被分配給一個分支)給定的DLL/OCX對應於。
- 我試過使用
tlbinf32.dll
,但它似乎不能列出導入。 - 我對PE沒有太多瞭解,但是我在PE查看器中彈出了其中一個DLL,它只在導入部分顯示
MSVBVM60.dll
。這似乎是VB6生成的類型庫的一個特別的怪癖:它們僅鏈接到MSVBVM60
,但對於其他依賴關係具有某種延遲加載機制。 - 即使我嘗試過的大多數現有工具都不提供這些信息 - 例如,depends.exe只能找到
MSVBVM60.dll
。 - 但是:OLEView,用於在Visual Studio中提供的實用程序,以某種方式生成IDL文件,其中包含
importlib
指令。鑑於VB不使用IDL文件,它顯然會以某種方式生成信息。所以這是可能的 - 我只是不知道如何。
真的,如果OLEView沒有做到這一點,我會放棄它現在是不可能的。有關如何完成此任何想法?