swig实现c#和c++之间的函数调用

背景

  1. 用swig编写胶水代码
  2. c#加载dll(或者其他c++的库,比如.a .so),然后c++回调c#中的方法

实现

c层实现

typedef void(*pCBFunc)(bool success);

extern "C" {
    virtual void CPP_InitData(pCBFunc cb);
}

c#层实现

public class PointerTest
{
    public delegate void InitDelegate(bool success);
    public SWIGTYPE_p_f_bool_void m_initDelegate = null;

    public void Work(InitDelegate cb)
    {
        m_initDelegate = new SWIGTYPE_p_f_bool_void(Marshal.GetFunctionPointerForDelegate(cb), false);
        CPP_InitData(m_initDelegate);
    }
}
posted @   二律背反GG  阅读(396)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示