2

VB6 で作成された複雑な ActiveX コントロールのタイプ ライブラリの IDL ファイルを取得しようとしています。64 ビット Win10 Pro を搭載した開発用 PC で OleView.exe を使用してこれを実行しようとしました。OleView の x64 バージョンは、OCX ファイルまたはそこから抽出された TLB を開こうとすると、単純にクラッシュします。x86 バージョンでは、次のエラー ボックスが 2 回表示されます。

OleView.exe: タイプ ライブラリの読み込みエラー (TYPE_E_CANTLOADLIBRARY)

おそらく、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 に変換する別のツールはありますか?

4

2 に答える 2

0

OleWoo ツールを使用して、 OCAファイルに保存されているコンポーネントの拡張型ライブラリを、対応する IDL ファイルに変換できました。しかし、取得した IDL は多くの場所で正しくありません。セミコロンなどは含まれていません。ただし、少なくとも、コンポーネントに実装されている COM インターフェイスの全体像を把握するために使用できます。

于 2016-04-08T08:17:23.930 に答える