4

Delphi 6 にインポートできる .net dll がありますが、一部の情報が失われます。

IRedeemTransactionItemBundle私は VB.net に とと呼ばれる 2 つのインターフェイスを示すこの dll を使用するデモ アプリケーションを持っています ITransactionItemBundleITransactionItemBundleVisual Studio 2008 では、それが の基本型であることがわかりましたIRedeemTransactionItemBundle。したがって、 type の変数を宣言するとIRedeemTransactionItemBundle、両方のインターフェイスのすべてのプロパティにアクセスできました。

しかし、dll を Delphi 6 にインポートすると、宣言部分IRedeemTransactionItemBundleITransactionItemBundle宣言部分の両方が表示されました。しかし、 がITransactionItemBundleの基本型であることを示す情報はありませんIRedeemTransactionItemBundle。また、Delphi で型の変数を宣言すると、 (基本型)のIRedeemTransactionItemBundleプロパティにアクセスできません。ITransactionItemBundle

IRedeemTransactionItemBundleのベース タイプを に設定してライブラリを tlb エディターに登録しようとするとITransactionItemBundle、「親インターフェイスには ID:1610743808 のメンバーが既に存在します」というエラーが表示されます。tlb エディターで、両方のインターフェイスのプロパティが同じ ID を持つことを確認できました。

Delphi 7も使用して同じdllをインポートしようとしました。しかし、助けはありません。

それはDelphiの問題ですか?輸入時にこのような問題を経験した方はいらっしゃいますか?

4

2 に答える 2

0

COM相互運用機能を使用する以外に、管理されていないエクスポートを実行できます。簡単に言えば、.netdllの新しい特定のバージョンが必要です。

Delphiを使用したテクニックの詳細については、この投稿にアクセスしてください。

于 2012-01-03T10:17:04.303 に答える
0

Delphi が正しく対話できる方法で必要な機能をインポートする C# または VB.NET の DLL の COM 可視ラッパーを作成することをお勧めします。

于 2011-07-27T17:50:34.060 に答える