作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在寻找 C# 和 C++ 之间互操作方法的过程中,我发现了 article这解释了 P/Invoke。
我读了很多文章,声称 C++/CLI 不是完全的 C++,需要一些努力来修改原始 C++ 代码。
我想问当我有一些我想从 C# 对象中使用的 C++ 对象(代码/数据)时,最佳方式是什么。
最佳答案
我不建议将您的 C++ 库重写为 C++/CLI。相反,我会编写一个可以从 C# 调用的 C++/CLI 包装器。这将由一些 public ref class
类组成,每个类可能只管理 native 类的一个实例。您的 C++/CLI 包装器只需“包含 header ,链接到库”即可使用 native 库。因为您已经编写了 public ref class
类,所以您的 C# 代码只是添加了一个 .NET 引用。您在每个公共(public) ref 类中所做的只是使用 C++ 互操作(也称为 It Just Works 互操作)来调用 native 代码。如果您愿意,可以在使用外观时应用外观。
关于c# - C++ 和 C# 互操作性 : P/Invoke vs C++/CLI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3150477/
我是一名优秀的程序员,十分优秀!