如何从python程序中调用C ++对象中定义的函数?

时间:2012-04-11 06:12:41

标签: c++ python ctypes

我有一个C ++程序:

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

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

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

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

4 个答案:

答案 0 :(得分:2)

查看Boost::Python

答案 1 :(得分:1)

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

答案 2 :(得分:0)

Boost.Python的替代方案是SWIG

答案 3 :(得分:0)

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

希望有所帮助。