【问题标题】:Wrapping boost::signal to C# delegates将 boost::signal 包装到 C# 委托
【发布时间】:2008-11-17 13:04:09
【问题描述】:

假设我有一个异步库,用原生 C++ 编写,接口类似于:

class connection {
public:
    boost::signal< void() > sig_connection_made;
    boost::signal< void(const std::string&) > sig_error;

    void connect(const std::string& host, const std::string& port);
};

我想用 C# 包装。有谁知道一种方法,使用 SWIG 或类似的东西,可以让我将信号绑定到 C# 委托?

【问题讨论】:

    标签: c# c++ boost wrapper swig


    【解决方案1】:

    您可以使用 SWIG 将委托从 C# 传递到 c++,将其分配给函数指针,然后调用函数指针,它将触发委托。

    【讨论】:

      【解决方案2】:

      听起来像是C++/CLI 的任务。

      另见Mixed AssembliesCalling Native Functions from Managed Code

      【讨论】:

      • 不像我希望的那么简单,但它从来都不是:)。我一定会研究它,看看我是否可以在 C++/CLI 中编写一个中间包装器来进行必要的翻译。
      • 确实如此。但这是 .NET 最大的问题之一:让它与其他一切接口。祝你好运!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      • 1970-01-01
      相关资源
      最近更新 更多