创建要在 C# 中编组的 C++ Dll 的最佳实践 [关闭]

Posted

技术标签:

【中文标题】创建要在 C# 中编组的 C++ Dll 的最佳实践 [关闭]【英文标题】:Best practice for creating a C++ Dll to be marshalled in C# [closed] 【发布时间】:2014-10-19 09:28:38 【问题描述】:

我必须编写一个 C++ Dll 来包装现有的 C++ Dll,以便可以在 C# 中声明它,因为现有的 C++ API 太复杂了(函数返回指向结构内结构内联合的指针)。有什么最佳做法吗?例如:

从 C++ 到 C# 声明字符串的最佳方式是什么? C++ 函数使用指针还是引用更好?

【问题讨论】:

人们投票结束 - 你能发表评论解释原因吗? 因为你的问题似乎太宽泛了。 将功能公开为 COM 类。我认为这可以更容易地从 .NET 中使用。 我只是在寻求最佳实践——一本书、一篇文章、一篇博文…… @parsley72 请求异地资源也是OT。 【参考方案1】:

这取决于您希望导出多少个函数,以及您是否希望仅将它们导出到 c#。 如果您对其中一个回答是,那么我建议您使用 swig,因为会自动为您生成函数

这是一个链接 http://www.swig.org/tutorial.html

【讨论】:

以上是关于创建要在 C# 中编组的 C++ Dll 的最佳实践 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C#编组(C#调用C++ DLL)

C# 和 C++ dll - 编组字符串

C++ 到 C# 回调结构编组

将 C++ int* 编组为 C#

从 C++ dll 编组导出的字符串向量

在 C# 中使用“const char*”和“const int”编组我的 C++ .dll