将.net dll导入Delphi 6会丢失信息

将.net dll导入Delphi 6会丢失信息,delphi,import,delphi-6,typelib,Delphi,Import,Delphi 6,Typelib,我有一个.NETDLL,可以导入Delphi6。但它会丢失一些信息 我在VB.net中有一个演示应用程序来使用这个dll,它显示了两个名为 IRedeMTransactionItemBundle和ITransactionItemBundle。在VisualStudio2008中,我可以看到ITransactionItemBundle是IRedeemTransactionItemBundle的基本类型。因此,当我声明类型为IRedeemTransactionItemBundle的变量时,我可以访问

我有一个.NETDLL,可以导入Delphi6。但它会丢失一些信息

我在VB.net中有一个演示应用程序来使用这个dll,它显示了两个名为
IRedeMTransactionItemBundle
ITransactionItemBundle
。在VisualStudio2008中,我可以看到
ITransactionItemBundle
IRedeemTransactionItemBundle
的基本类型。因此,当我声明类型为
IRedeemTransactionItemBundle
的变量时,我可以访问这两个接口的所有属性

但是当我将dll导入Delphi 6时,我可以看到
IRedeemTransactionItemBundle
ITransactionItemBundle
声明部分。但是没有任何信息显示
ITransactionItemBundle
IRedeemTransactionItemBundle
的基本类型。另外,当我在Delphi中声明类型为
IRedeemTransactionItemBundle
的变量时,我无法访问
itTransactionItemBundle
(基本类型)的属性

当我试图通过将
IRedeemTransactionItemBundle
的基类型设置为
ITransactionItemBundle
在tlb编辑器中注册库时,我收到了错误:“父接口已经有一个id为1610743808的成员”。我可以在tlb编辑器中看到两个接口的属性具有相同的ID

我还尝试使用Delphi7导入相同的dll。但是没有帮助


这是Delphi的问题吗?有谁在导入时遇到过这样的问题吗?请给我一些想法?

我建议您在C#或VB.NET中为DLL创建COM可见包装器,它将以Delphi可以正确交互的方式导入必要的功能。

除了使用COM互操作,您还可以执行以下操作。简单地说,您需要一个新的特定版本的.NETDLL


有关使用Delphi技术的详细信息,请点击此处。

如何导出此项?通过COM?请给我们看C#类声明的标题。如何导入?类型库编辑器?请向我们显示导入的Pascal位的标题。