在 C/C++ 和 Python 之间交换值的应用程序设计

Posted

技术标签:

【中文标题】在 C/C++ 和 Python 之间交换值的应用程序设计【英文标题】:Application design for exchanging values between C/C++ and Python 【发布时间】:2012-09-06 14:26:21 【问题描述】:

我正在编写一个 C/C++ 应用程序,该应用程序由用户直接用于提供输入,基本上是数值,如精确值、范围等,考虑一个包含以下部分的 UI:

小键盘 滑块 数字输入字段

这是 C/C++ 部分,我希望从这段代码中得到一堆值,问题是这个值:

必须以某种方式发送到 Python 可以实时更改,因为我的 C/C++ 就像一个可以更改的 UI

我不知道有什么设计可以满足我的要求,主要是因为:

我只知道关于 Python 的基本知识,我可以编写一些脚本,但我对 Python 内部原理一无所知 我不知道如何让 C++ 和 Python 一起工作,以及如何在信号/槽逻辑中做到这一点(假设信号/槽设计适合这个应用程序) 我不知道如何将我的 API 提供给希望将我的值集成到他们自己的脚本中以用于第三方应用程序的用户,想象一个也提供 Python API 的随机应用程序,我想给用户选项在一个脚本中使用这两个 API 进行编码,并可能在此第三方应用程序中将此脚本用作任何其他 API 集(在第三方应用程序 Python 环境中编写脚本时可以导入外部 API?)

这就是我如何描述我的问题和我的目标,如果有不清楚的地方请评论。

回顾:如何通过使用信号/槽设计的 C++ 应用程序实时提供 Python API?

谢谢。

【问题讨论】:

我想说最简单的接口是使用套接字。但是为什么要用 C++ 编写 UI 部分呢? @TJD 因为这个 UI 基本上是用 OpenGL 编写的,它是一个与我想要实现的目标相关的解决方案,也是这个项目的固定点之一;此外,我想要定位的环境本身不提供 Python 支持或根本不提供 Python 支持 Boost Python 的另一个主要替代品是 SWIG。这个相关问题有很多讨论选项的答案:***.com/questions/456884/… 【参考方案1】:

查看Boost.Python。它是一个允许将 Python 用作 C++ 程序的脚本语言的库。

【讨论】:

以上是关于在 C/C++ 和 Python 之间交换值的应用程序设计的主要内容,如果未能解决你的问题,请参考以下文章

JSON 获取属性值的方法

C++ 应用程序 (Sci)Python 之间的数据交换

Analysis JSON / XML Processing Model Extend to JAVA Design Model

如何在 Python 和 R 之间交换 Msgpack 文件?

servlet与ajax数据交换(json格式)

通过套接字在 C++ 和 python 之间交换固定浮点数组