Python Ctypes - массив без знака в качестве аргумента - PullRequest
1 голос
/ 21 февраля 2020

Я пытаюсь использовать мою библиотеку из C в Python через Ctypes, и у меня проблема с типами в Ctypes

Моя C функция имеет аргументы:

fun(const char *something, const unsigned char *input, unsigned short val);

Моя проблема с данными без знака *. в C я передаю массив:

unsigned char input_data[2] = {0x02, 0x01};

, а затем

fun(NULL,input_data,3);

и он работает. как добиться этого в python с ctypes? Я пытался разными способами, последний:

lib = cdll.LoadLibrary('mylib.so')
lib.fun.argtypes = (c_char_p, c_char_p, c_ushort)
input = (c_char_p * 2)(b'\x02',b'\x01')
lib.fun(c_char_p(None),input,c_ushort(2)))
...