Working with ctypes and char** data type
Thomas Heller
theller at python.net
Thu Jul 24 11:03:59 EDT 2008
Philluminati schrieb:
> I'm a bit of a python newbie and I need to wrap a C library.
>
> I can initialise the library using CDLL('mcclient.so')
>
> and I can call functions correctly inside the library but I need to
> invoke one function which has this function definition:
>
> char ** CAPAPI McSearch(HMCLINK Handle,
> short nSearchType,
> short nNoSelect,
> char **pSelect,
> short nNoWhere,
> char **pWhere,
> char **pData,
> int iTimeout);
>
> For **pSelect I want to pass in an array of char points, which in C
> would be declared as
>
> char *pData[] = { "ADDR", "POSTCODE" };
>
> Can someone tell me how use pointers + char pointers together in
> python with ctypes please?
# create an array that holds two pointers to 'char *', and fill it with data:
pData = (c_char_p * 2)()
pData[0] = "ADDR"
pData[1] = "POSTCODE"
# Another way:
pData = (c_char_p * 2)("ADDR", "POSTCODE")
Thomas
More information about the Python-list
mailing list