構造体を定義するDLLがあります。この構造体内には、windows.h
のように、タイプがCRITICAL_SECTION
のフィールドがあります。この型を参照するためにPythonでctypes構造体を定義するにはどうすればよいですか? CRITICAL_SECTION
はそれ自体が構造体(それ自身の定義で他の構造体への参照を持つ)なので、Pythonのctype等価物を定義しなければならないのですか?CRITICAL_SECTION
を参照できますか?より良い方法がありますか?未知のフィールドタイプのpython ctypes構造体を定義します。
例Cプログラム:
...
typedef struct some_struct {
...
CRITICAL_SECTION field1;
} SOME_STRUCT;
...
例Pythonプログラム:
...
class SOME_STRUCT(Structure):
_fields_ = [... ('field1', CRITICAL_SECTION)]
私はctypesのはCRITICAL_SECTION
はまであらゆるものを定義するのウサギの穴を下に行かなくても何であるかを認識させるにはどうすればよいですctypesが認識するプリミティブ型?
テストされていないが、Pythonの目的のため* xは'のsizeofであるX ' (CRITICAL_SECTION) 'で十分かもしれません。最終的な構造が正しいサイズであれば、それを不透明なバイト配列として扱うことができます。 –
とにかく 'sizeof(CRITICAL_SECTION)'とは何ですか:D –
@AnttiHaapalaはあなたのCコンパイラに質問します:^)それは40バイトでしたが、それは変わります。私は下のほうがうまくいっていたと思う。 –