![](/img/trans.png)
[英]Is it possible to import unmanaged class or struct from DLL using C# 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.