C# 使用DLLImport导入类

C# 使用DLLImport导入类,c#,.net,dllimport,C#,.net,Dllimport,我在dll中有一个类: 例如: namespace foo { public class baa { /* ... */ } } 如何从dll导入baa类?有可能吗 [DllImport(DllName)] public extern ?? foo() ?? 提前谢谢 DllImport仅在希望从非托管库(如用C++编写的库)调用非托管函数时使用 当您有一个托管的.NET程序集时,您只需将其添加为项目的引用并使用它 因此,假设您有一个包含以下类的.NET类库: name

我在dll中有一个类: 例如:

namespace foo {
   public class baa {
      /* ... */
  }
}
如何从dll导入
baa
类?有可能吗

[DllImport(DllName)]
public extern ?? foo() ??

提前谢谢

DllImport
仅在希望从非托管库(如用C++编写的库)调用非托管函数时使用

当您有一个托管的.NET程序集时,您只需将其添加为项目的引用并使用它

因此,假设您有一个包含以下类的.NET类库:

namespace foo {
   public class baa {
      /* ... */
  }
}
然后,您还有一些其他项目需要使用此程序集,您可以转到解决方案资源管理器中的“引用”节点,并添加对给定程序集的引用。然后将名称空间引入范围:

using foo;
并实例化该类:

baa b = new baa();
... use the b instance here

那是行不通的。非托管DLL导出的是
C
接口,而不是
C++
接口。对于托管DLL(C#或C++/CLI),您根本不需要DllImport


恐怕只有导入到静态类中的函数

> P>这是一个只与C++一起工作的标准C++输出机制。您不能直接从C#导入它。有一些解决方案,比如从MC +组件中导出托管类型,使用单独的托管包装,使用COM和类型库或类似的东西,但是不能使用与C++应用程序相同的导入/导出机制。类名中有括号,这不是常用的。噢,对不起。它是C#。括号是一个数字错误。使用.NET程序集不需要DllImport。。。只有当您想要使用非托管DLL时,才需要使用什么?C++是一种标准的导出机制。我看不到任何C++,不看<代码> DeXSPEC(DLRou出口)< /C>,和<代码> DeXSPEC不是标准。我想这就是他所说的…我的意思是你有点希望这就是他所说的。我的问题是我有两个同名的dll(不是我写的)。它导致了冲突。还有别的办法吗?在Form1中,我确实引用了foo.dll和fooAPI名称空间,在form2中,我尝试引用foo.dll(具有不同的内容)。。。但我真的需要用它。