繁体   English   中英

使用DLLImport导入类

[英]Using DLLImport to import a class

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

namespace foo {
   public class baa {
      /* ... */
  }
}

如何从dll导入baa类? 有可能的?

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

提前致谢。

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

只有导入静态类的函数我才害怕。

DllImport仅在您想要从非托管库调用非托管函数时使用(例如用C ++编写的函数)。

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

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

namespace foo {
   public class baa {
      /* ... */
  }
}

然后你有一些其他需要使用这个程序集的项目,你可以转到解决方案资源管理器中的References节点和给定程序集的Add Reference。 然后将命名空间放入范围:

using foo;

并实例化该类:

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

这是一个标准的C ++导出机制,只适用于C ++。 您无法直接从C#导入它。 有一些解决方法,比如从MC ++程序集导出托管类型,使用单独的托管包装,使用COM和类型库或类似的东西,但不能使用C ++应用程序使用的相同导入/导出机制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM