我有一个纯 C 库,其标头是从 Perl 中的自定义 IDL 生成的。我想转移到 SWIG(或其他生成器)以消除对 Perl 的依赖。我还想要 SWIG 附带的免费生成的 Python 和 Ruby 包装器。
我目前生成一个 C# 包装器,它需要将父概念传递给构造函数:
// Pure C API
b = StructB_Create(a);
// not safe to free a until b is freed
// C# wrapper ctor
B(ClassA a)
{
this.parent = a; // ref to prevent gc of a
}
以这种方式将 SWIG 与现有的纯 C API一起使用是否容易?