0

我有一个 C++ 程序:

class X
{
    private:
        int a;
    public:
        int func(char *str);
};

现在我想在我的 Python 程序中调用函数 func 。我该怎么做?

我已经使用 ctypes 从我的 Python 程序中成功调用了 C 函数。但是我似乎无法弄清楚如何调用在 C++ 对象中定义的函数。

我已经使用过 ctypes,所以我想弄清楚如何以这种方式完成它。但是我对其他技术持开放态度。我的项目也提出了一个约束,即我不应该在我的 C++ 程序中使用包装函数。

4

4 回答 4

2

退房Boost::Python

于 2012-04-11T06:19:58.823 回答
1

您标记了问题 ctypes,但不能直接从 ctypes 实例化 C++ 对象。您可以将 C++ 对象包装在 C 接口中,然后使用 ctypes。或者你可以编写一个 Python 扩展模块,它可以包含 C++ 代码。

于 2012-04-11T06:26:43.300 回答
0

Boost.Python 的替代品是SWIG

于 2012-04-11T06:20:59.470 回答
0

尝试http://swig.org/ 几年前,我包装了一些 c/c++ 代码,以便在 wxPython 中与 swig 一起使用它们。我不记得太多细节,但我认为 swig 很容易使用。

希望有帮助。

于 2012-04-11T06:24:18.323 回答