【发布时间】:2011-11-06 23:26:47
【问题描述】:
我有一个(仅标题)C++ 库,我希望将其移植到 C#。它是我为特定目的制作的 win api 的包装。我想将它移植到 C#,因为我想使用 C# 进一步开发它。什么是最有效(也是最简单?)的移植方式。请注意,我不想要一些忙碌的事情,因为我不想花更多的时间移植库而不是首先制作那个库。那么有没有办法呢?
【问题讨论】:
-
@Cassio 让我的 lib 成为标头只是一个坏主意?
-
一点也不。我也在 C++ 中使用标题。只需将其转换为 DLL 即可。我想没什么大不了的。
-
视情况而定。许多高质量的纯头文件库都是这样的,因为它们大量使用模板,因此无法将代码移动到单独的编译单元中(因为它是在编译时生成的)。 C# 没有模板(我知道)的等价物,所以你会不走运。
-
@Mankarse 不,我没有在我的库中使用模板(尽管我即将使用)。我只是把它作为标题只是因为大多数函数都是内联的。
-
为什么不使用 P/Invoke?它非常简单,只需几行代码就可以省去整个移植过程。
标签: c# c++ compatibility porting