将C ++库移植到C#的最佳方法是什么?

问题描述 投票:4回答:2

我有一个(仅标头)C ++库,我希望将其移植到C#。它是我出于特定目的而制作的win API的包装。我想将其移植到C#,因为我想使用C#进行进一步开发。移植的最有效(最简单的方法)是什么。请注意,我不想忙得不可开交,因为我不想花太多的时间来移植库,而不是花一开始的时间。那有办法吗?

c# c++ compatibility porting
2个回答
3
投票

这在很大程度上取决于您的库有多大,它的结构如何,您的内存分配情况,您使用了多少C#中不可用的库(例如C ++ std库),您拥有多少C ++模板。二手等等。

可能有不同的策略

  • 尝试使用自己的代码生成器自动移植(部分)
  • 请勿将其移植到C#,而应使用C ++ / CLI(我过去做得非常成功)
  • 手动执行,因为到目前为止使用的C ++概念不能很好地映射到C#
  • “仅​​标头”似乎没有真正的区别。实际上,当每个类只有一个C ++文件要移植到一个C#类文件时,从技术上讲,事情可能会变得容易一些。]

我可以想到的几种方法。

  1. 通过T4可能的代码生成帮助,手动转换为C#dll。
  • 将c ++库更改为托管dll,以便可以在c#项目中使用它。
  • 当然,您可以在C#项目的c ++库中使用interop。但是在那种情况下,我不确定您的c ++库的用途,因为您说它是包装器。
  • 由于您已经具有可以完全控制的c ++库,因此我将首先尝试使用#2。


    0
    投票

    我可以想到的几种方法。

    © www.soinside.com 2019 - 2024. All rights reserved.