5

Centuraと COM .dll間の通信をセットアップしようとしています。(データベースのインポート用にhttp://download.resip.frからダウンロード)

Centura がこのコンポーネントと通信するには、.tlb ファイルが必要です。通常regasm /tlb、.tlb を生成するために使用しますが、COM .dll であるため、これは不可能です。

.NET dll に tlbexp を使用できることがわかりました: http://msdn.microsoft.com/en-us/library/hfzzah2c(v=vs.80).aspx

おそらく失敗することを知っていたので、これを試してみました(COM .dllがあるため)。このエラーを受け取りました:

TlbExp : エラー TX0000 : ファイルまたはアセンブリ 'file:///C:\Windows\system32\ResipBcb.dll' またはその依存関係の 1 つを読み込めませんでした。モジュールには、アセンブリ マニフェストが含まれている必要がありました。

Dependency Walker を使用すると、2 つの .dll が欠落していることに気付きました。ieshims.dll をオンラインで見つけましたが、wer.dll が見つかりません。この質問を参照してください。
tlbexp の失敗が、欠落しているこのファイルと関係があるかどうかわかりませんか?

要約すると、私の質問は次のとおりです。この .dll から .tlb を取得するにはどうすればよいですか? この COM .dll から .tlb を抽出する方法が見つからないようです。

よろしくお願いします
クリント・キャンビア

4

2 に答える 2

10

あなたがしようとしていることは、ネイティブ COM サーバーではなく、.NET アセンブリに対してのみ機能します。それらのタイプ ライブラリは、ほとんどの場合、DLL 内に埋め込まれています。Visual Studio で、[ファイル] + [開く] + [ファイル] を使用して DLL を選択します。「TYPELIB」ノードを開き、リソース (通常は 1) を右クリックし、[エクスポート] をクリックします。たとえば、プロジェクト ディレクトリに保存し、.tlb ファイル名拡張子を使用します。

于 2010-12-28T17:12:20.783 に答える
2

TblExp と regasm は .NET アセンブリでのみ有効です。おそらく、標準の非 .NET COM DLL です。したがって、これら 2 つのコマンドはいずれも、この DLL では有効ではありません。

標準 COM オブジェクトは を使用して登録されregsvr32ます。DLL に対して実行して、正しく登録されているかどうかを確認してください。存在する場合は、Centura の ActiveX エクスプローラーに表示されるはずです。

于 2010-12-28T16:28:48.393 に答える