C++与python交互

本文介绍如何通过ffpython库将C++与Python进行交互,实现复杂运算和数据库操作等功能,解决业务需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做的项目想玩,点灵活的套路,处理逻辑让业务方定制去,于是就由哥游戏服务端出身想到了加载脚本的套路。

地球人基本都知道,做游戏的脚本中lua使用的是最多的但是本次我们的项目是监控和报警,里面可能有复杂运算,这样子lua的库就比较贫瘠了,选择使用python,这样我就需要把python和C++做好交互。

我的需求是这样的:1主程序是C++,用户会到主程序注册,这个时候python脚本就注册过来

2在某些情况下运行python脚本,python中会调用特定的C++接口,完成某些python不方便完成的功能,比如操作数据库,调用发短信接口等。

懒人都不想写原生态的代码,就看那一个个C++向python就注册接口就不爱动手了,找了个国人写的三方库ffpython,跑了一下他的example,还是不错的,很简单,可以完成C++的静态函数,C++类想python注册,就用这个了,顺便提一下,他的example中的test_reg_function接口的第二个参数应该传int才对,不知道脚本里面为毛写成了double行,导致异常。


  ffpython_t::init_py();


  ffpython_t::add_path("/Users/bojue/sentry2/sentry-alarm/src");


  CInterface_API m_api;

  python.reg_class<CInterface_API, PYCTOR()>("CInterface_API")

    .reg(&CInterface_API::GetGroupInfo, "GetGroupInfo");

    

    python.init("DB_OPERATE");

    python.call<void>("fftest", "test_db_api", &m_api);

   ffpython_t::init_py();


这么几行代码就OK了,可以吧CInterface_API的对象注册到python中了,需要详细研究的朋友把他的代码下载下来看下example吧。非常简单。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值