2011-07-13 12 views
1

長い研究の後、私は質問を書くことに決めました。 ObjectType * getInstance() このインスタンスを使用すると、関数は戻ります。私は他のすべてのpublic関数にアクセスできます。Pythonでオブジェクト参照を返すC++ DLLを呼び出す

私の問題は今、私がこのことをPythonで使いたいということです。 ctypesでgetInstanceにアクセスすると、インスタンスではなく整数値しか取得されません。 私が試した次のことは、C++でPython拡張を書くことでした。しかしこれもうまくいかなかった。

アイデア

ありがとうございました。

よろしくお願いいたします。

+0

[Boost.Python](http://www.boost.org/doc/libs/release/libs/python/doc)や[SWIG](http://swig.org)のようなものを調べましたか? ?彼らは、PythonとC++のインターフェイスを非常に簡単にします。 – CharlesB

+2

C++のクラスとDLLは、私の見解ではあまりよく混じりません。通常、DLLのクライアントを制約して、DLLのビルドに使用されたのと同じコンパイラを使用します。私は 'extern" C "関数のフラット化されたインタフェースをエクスポートします。最初のパラメータがオブジェクトインスタンスであるこれらの非メンバ関数を作成します。 –

答えて

0

私が知る限り、Pythonから直接C++型にアクセスすることはできません。あなたは をCまたはC++コードのいくつか(たいていは多く)で囲む必要があります:それは難しいですが、それは ではありませんが、時間がかかります。 Extending and Embedding the Python Interpreterを参照してください。

+0

これまでの返信をありがとう。私はすでにそのような拡張を開発し始めています。今のところ数日遊ぶ。 – daalex

関連する問題