VB6で作成した複雑なActiveXコントロールのタイプライブラリのIDLファイルを取得しようとしています。私は64ビットWin10 Proを使って開発したPC上でOleView.exeを使ってこれをやろうとしました。 OleViewのx64バージョンは、OCXファイルまたはそれから抽出されたTLBを開こうとするとクラッシュするだけです。 x86バージョンは、次のエラーボックス2回私を示していますOleView.exeは、VB6から抽出したタイプライブラリを逆コンパイルできません。OCX
をおそらく、TLBファイルは、いくつかのimportlib
ディレクティブを持っており、OLEVIEWは、参照ファイルを見つけることができません。私はOLEVIEWにコンポーネントのOCAファイルを見ることができるし、そのIDL同等物は、上部にこれらの行が含まれています
// TLib : // TLib : Visual Basic objects and procedures : {FCFB3D2E-A0FA-1068-A738-08002B3371B5}
importlib("VB6.OLB");
// TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
importlib("stdole2.tlb");
// TLib : Visual Basic runtime objects and procedures : {EA544A21-C82D-11D1-A3E4-00A0C90AEA82}
importlib("3");
OLEVIEWでこの問題を解決する方法は?または、TLBをIDLに変換する別のツールがありますか?
タイプライブラリは* registry *には見つかりません。ファイルとは関係ありません。マシンにVB6がインストールされ、このOCXが正しく登録されている必要があります。 –
@ HansPassant、VB6は元のVS98 CDからインストールされました。 VB6.OLBが登録されています:レジストリキー 'HKEY_CLASSES_ROOT \ TypeLib \ {FCFB3D2E-A0FA-1068-A738-08002B3371B5} \ 6.0 \ 9 \ win32'が正しいファイルの場所を指しています。唯一の問題は、 'C:\ Windows \ SysWOW64 \ msvbvm60.dll \ 3'を指す" 3 "ライブラリです。他の考え? – TecMan
SysInternalsのプロセスモニタを使用してください。 oleview.exeがレジストリを検索し、それが不平を言っているタイプライブラリを見つけられないのを見るべきです。 –