Указатели и массивы в Python ctypes

У меня есть DLL, содержащая функцию C с прототипом, как это:

int c_read_block(uint32 addr, uint32 *buf, uint32 num);

Я хочу вызвать его из Python, используя ctypes. Функция ожидает указатель на кусок памяти, в который она будет записывать результаты. Я нене знаю, как построить и передать такой кусок памяти. Документация ctypes отсутствуетбольшая помощь

Построение массива и его передача »ByRef», как это:

    cresult = (c_ulong * num)()
    err = self.c_read_block(addr, byref(cresult), num)

Дает это сообщение об ошибке:

ArgumentError: argument 3: : expected LP_c_ulong instance instead of pointer to c_ulong_Array_2

Я думаю, это потому, что массив Python ulong не похож на массив c uint32. Должен ли я использоватьcreate_char_string, Если да, то как мне убедить Python вбросать" этот буфер для LP_c_ulong?

Ответы на вопрос(3)

Ваш ответ на вопрос