【问题标题】:SWIG - No default typemap for std::list when wrapping to C#, how can I do?SWIG - 包装到 C# 时 std::list 没有默认类型映射,我该怎么办?
【发布时间】:2017-04-25 09:52:16
【问题描述】:

我目前正在使用 SWIG 将大型 C++ 库包装到 C#。我面临一个大问题,因为我的库使用了大量 std::list,而且似乎 SWIG(我使用的是最新版本 3.0.12)不提供默认映射对于 std::list。我在网上找遍了,一无所获。我很惊讶,因为 std::list 与 C# LinkedList 非常相似!

反正我很久没在SWIG了,所以我真的不知道该怎么做。。我只知道我绝对不能改变所有的std::list 在我的库中,我真的很想将它们包装在 C# LinkedList 中,但我不知道这是否可能以及我是否可以轻松地做到这一点..

我查看了类型映射,但我不确定它是否能正常工作,因为将 std::list 映射到 LinkedList 似乎比使用简单类型映射更复杂..

各位,我需要你给我建议! 提前致谢, 昆汀。

【问题讨论】:

  • 你考虑过 C++ / CLI 吗?
  • 其实我们已经试过这个方案了。但最终,由于多种原因,它并没有达到我们想要的效果。主要原因是我们希望尽可能少地接触 lib 源代码。

标签: c# c++ swig typemaps


【解决方案1】:

好吧,对于那些和我一样面临同样问题的人,我最终决定将自己的 std::list 实现转换为 C# LinkedList。

我今天在 SWIG GitHub 上提出了拉取请求。如果有人感兴趣,就去看看吧。它并不完美,但现在可以使用。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-26
  • 2017-05-09
  • 2015-02-25
  • 1970-01-01
  • 2014-03-31
  • 1970-01-01
  • 2013-10-16
相关资源
最近更新 更多