锶韵妞妞 2024-05-25 01:49 采纳率: 50%
浏览 6
已结题

利用boost::python实现C++中嵌入python,两种语言间变量映射

利用BOOST_PYTHON_MODULE导出python模块A,如何在模块A中实现一个接口,比如:A.GetCplusplusVar(变量名),来让python获取到C++中不同类型的变量的值?

  • 写回答

4条回答 默认 最新

  • 百锦再@新空间代码工作室 全栈领域优质创作者 2024-05-25 01:50
    关注

    #include <
    boost/python.hpp>

    int myInt = 10;
    float myFloat = 3.14;
    std::string myString = "
    Hello"
    ;

    boost::python::object GetCplusplusVar(const std::string &
    varName){boost::python::object value;
    if (varName == "
    myInt"
    ){value = boost::python::object(myInt);
    }else if (varName == "
    myFloat"
    ){value = boost::python::object(myFloat);
    }else if (varName == "
    myString"
    ){value = boost::python::object(myString);
    }return value;
    }
    BOOST_PYTHON_MODULE(A){using namespace boost::python;
    def("
    GetCplusplusVar"
    , GetCplusplusVar);
    }

    通过以上代码,我们利用boost::python模块导出了一个名为A的Python模块,并在其中实现了一个GetCplusplusVar接口,该接口接受一个变量名作为参数,在C++中根据变量名返回不同类型的变量的值。用户可以通过调用A.GetCplusplusVar(变量名)来获取到所需变量的值。


    有问题你别着急,评论留言都可以,看到马上就回复,尽量及时补充齐
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月7日
  • 已采纳回答 5月30日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境
  • ¥15 netcore使用PuppeteerSharp截图
  • ¥20 这张图页头,页脚具体代码该怎么写?
  • ¥15 关于#sql#的问题,请各位专家解答!
  • ¥20 WPF MVVM模式 handycontrol 框架, hc:SearchBar 控件 Text="{Binding NavMenusKeyWords}" 绑定取不到值
  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111