swig实现c#和c++之间的函数调用
背景
- 用swig编写胶水代码
- 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);
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具