c# – 我应该为非托管C DLL创建一个C/C++LI包装器DLL吗?

我已经提供了一个包含几个类的非托管C DLL.

我需要能够在C#中使用其中一些类.根据我到目前为止的研究,听起来我需要创建一个C/C++LI包装器DLL来处理托管和非托管类型之间的转换.我已经看到一些例子,其中某人基本上会创建每个类的C/C++LI版本,并且它将包含非托管C类型的实例.实现我在这里尝试做的最好的方法是什么?非托管DLL中可能提供了10-15个类.现在我只需要使用其中的一些,但将来可能需要使用更多.谢谢!

解决方法:

是的,您需要为此库创建C/C++LI包装器,并在此包装器内部使用非托管类.对于暴露C风格API的非托管库,还有PInvoke选项,但它不适用于C类.

您还可以考虑制作COM包装器,您希望在本机COM客户端和.NET中使用此库.但我认为制作C/C++LI包装器是一项更简单的任务.

上一篇:Oracle ASM存储Spfile解析


下一篇:QT学习笔记(五)菜单栏