[英]In Python using ctypes for passing pointer to struct pointer to C function
[英]Passing a C struct to a Python function
我需要一種簡單的方法來將C結構傳遞給Python函數。 我已經將Python嵌入到游戲服務器中,並且打算用Python編寫游戲邏輯。 我搜尋了Google和郵件列表,發現沒有任何用處。 我在C語言中有一個復雜的結構(帶有指向其他相對復雜結構的指針),並且沒有找到實現此目的的合理方法。
我有這個結構:
struct client {
int state;
int sockfd;
struct sockaddr_in *addr;
struct epoll_event *epollev;
struct buffer *in_buffer;
struct buffer *out_buffer;
struct packet *packet;
struct player *player;
};
並且需要將其傳遞給Python函數,在這里我可以使用通用語法輕松訪問成員(最好不要使用dict等東西,盡管也可以)。 幾乎就像我需要一個PyObject_FromStruct函數之類的。
有沒有相對簡單的方法可以做到這一點?
SWIG可以執行指針,特別是如果您可以在Python代碼中將它們視為不透明的Blob。
Cython可能還會使您有所作為-這是Python的方言,可讓您混合使用Python和C數據類型。
最好的選擇是swig ,但我認為指針會給您帶來麻煩。
我會用boost :: python將結構體包裝在python可消化的東西中。 然后訪問要導出到python的功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.