【问题标题】:SWIG c# with a virtual pure interface带有虚拟纯接口的 SWIG c#
【发布时间】:2018-08-01 08:04:42
【问题描述】:

我正在尝试使用 SWIG 将 C++ 虚拟纯接口包装到 c# 中。 这是我的 dll C++ 接口:

class EXPORT FeatureItf
{
protected:
    virtual ~FeatureItf() { }
public:
    virtual void PrintMe() = 0;
    virtual void Delete() = 0;
};

bool EXPORT FeatureItfCreator(FeatureItf*& feat);

对于链接 dll 的 C++ 用户,API 很简单:

FeatureItf* feat = nullptr;
FeatureItfCreator(feat); // will allocate feat
feat->PrintMe();
feat->Delete();

如何使用 SWIG 将 FeatureItf 类包装到 c# 类中? 特别是要管理 *& in creator 函数和 c# 对象的构造。

【问题讨论】:

  • “什么是最好的方法”是基于意见的。投票结束。
  • @HenriMenke 我更新了问题。

标签: c# c++ swig


【解决方案1】:

这很好用:

%include swigtype_inout.i
%apply SWIGTYPE *& OUTPUT { SWIGTYPE *& }

【讨论】:

    猜你喜欢
    • 2012-05-09
    • 2019-06-06
    • 2012-10-11
    • 1970-01-01
    • 2010-10-23
    • 2011-03-03
    • 2014-09-04
    • 1970-01-01
    • 2016-10-13
    相关资源
    最近更新 更多