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 を使用できます。または、C++ コードを含む Python 拡張モジュールを作成することもできます。

于 2012-04-11T06:26:43.300 に答える
0

Boost.Python の代替はSWIGです。

于 2012-04-11T06:20:59.470 に答える
0

http://swig.org/を試してみてください 。数年前、私はいくつかの c/c++ コードをラップして、swig を使用して wxPython で使用しました。あまり詳しく覚えていませんが、swig は使いやすいと思います。

それが役立つことを願っています。

于 2012-04-11T06:24:18.323 に答える