C++/CLI或C#P/Invoke用于大型C库,调用extern函数

nch*_*che 4 c dll pinvoke c++-cli

现在我知道有很多关于这方面的问题,但一般来说它们都是指c ++库.

我有一个相当重要的C dll(大约2800个函数),我需要在C#中为大约70个这些可调用函数创建一个API.我开始使用P/Invoke,但它非常繁琐,因为我有复杂的结构来传递和返回C代码(带有指针的结构,双指针等),它花了我很多时间来得到我需要的东西.

现在我根本不了解C++/CLI,但我对C++有一些经验(尽管不是很多).

我想知道是否值得努力为我的项目学习这个.使用C++包装器是否可以让我不必为编组结构而烦恼,在全局堆中分配指针等等?

非常感谢这个伟大的社区

Dav*_*nan 6

这是一个相当大的表面积.我认为C++/CLI比P/invoke更容易.您不需要使用任何C++功能,您可以编写基本上是C的内容并使用C++/CLI编译和导出它.