将boost :: signal包装到C#代理

假设我有一个异步库,用本机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#代表?

最佳答案 您可以使用SWIG将委托传递给c#,使用SWIG将其分配给函数指针,然后调用函数指针,它将触发委托.

点赞