1

C共有ライブラリからエクスポートされたメソッドを呼び出すPythonスクリプトがあります。

Pythonクラスオブジェクトをパラメータとしてこれらのメソッドの1つに渡す方法。

Pythonコード:

class module(object)
     def __init__(self, param1):
         self._param1 = param1

lib = CDLL("name")
mod = module1(10)
lib.func(pointer(mod))

Cサンプルコード:

struct module {
  int val;
};
extern "C" void func(struct module* data);

c関数「func」のmodule1パラメータに格納されている値にアクセスできますか?

この機能をどのように実現できるかについて、他にアイデアはありますか?

4

1 に答える 1

1

少しゴーグルした後、方法を見つけました:

Pythonで構造を次のように宣言できます:

class POINT(Structure):
    _fields_ = [("x", c_int),
               ("y", c_int)]

そして、この構造の参照を渡します。

参照:ctypesドキュメントページ

于 2012-11-16T10:31:24.940 に答える