J'ai une DLL qui définit une structure. Dans cette structure est un champ qui a le type CRITICAL_SECTION
, comme inclus de windows.h
. Comment puis-je définir une structure ctypes dans python pour référencer ce type? Puisque CRITICAL_SECTION
est lui-même une structure (avec des références à d'autres structures dans sa propre définition), dois-je vraiment définir les équivalents python ctype de telle sorte que j'ai un python CRITICAL_SECTION
que je peux référencer? Y a-t-il un meilleur moyen?Définir la structure python ctypes avec un type de champ inconnu
Exemple de programme C:
...
typedef struct some_struct {
...
CRITICAL_SECTION field1;
} SOME_STRUCT;
...
Exemple de programme Python:
...
class SOME_STRUCT(Structure):
_fields_ = [... ('field1', CRITICAL_SECTION)]
Comment puis-je faire ctypes reconnaître ce que CRITICAL_SECTION
est sans aller dans le trou de lapin de définir tout jusqu'à types primitifs que ctypes reconnaît?
Untested, mais aux fins de Python, définissant comme 'c_ubyte * x' où x est' sizeof (CRITICAL_SECTION) 'pourrait être suffisant. Tant que votre structure finale a la bonne taille, vous pouvez la traiter comme un tableau opaque d'octets. –
alors quel est le 'sizeof (CRITICAL_SECTION)' de toute façon: D –
@ AnttiHaapala demander à votre compilateur C: ^) Sur le mien, il était de 40 octets, mais il pourrait varier. Je suis venu avec une meilleure réponse ci-dessous. –