3

我是 boost 的新手,我无法理解它的库之一是 Boost.Python。谁能详细解释一下这种互操作性是如何实现的?在文档中只有几句话关于元编程。PS 我试着看代码,但由于我缺乏 C++ 知识,我不懂原理。提前致谢

4

1 回答 1

5

有两种互操作方式:

1) 从“Python 进程”调用用 C++ 编写的函数。

Python 已经有一个加载 dll 的系统,它们被称为“扩展模块”。Boost.Python 可以编译您的源代码以生成一个。基本上,您编写一个小包装器来声明一个可从 Python 调用的函数,并且“元编程”可以执行诸如检测 C++ 函数采用和返回什么类型之类的事情,以便它可以发出正确的代码来将这些代码从/到等效的 Python 类型。

2) 从“C++ 进程”,启动并控制 Python 解释器。

Python 提供了一个 C API 来执行此操作,而 Boost.Python 知道如何使用它。

于 2013-03-02T23:30:23.017 回答