передача данных с python на c ++ с использованием ctypes

У меня есть библиотека C ++, функции которой вызываются со стороны Python. Одна из функций получает указатель на массив, который на стороне Python имеет значения в [0: 255] и определяется как

 seq1=numpy.array(image,dtype=numpy.uint8).flatten()
seq=numpy.zeros((w*h*3),dtype=numpy.uint8)

вызов функции идет как

myCppFunction(ctypes.c_void_p(seq.ctypes.data),
ctypes.c_void_p(seq1.ctypes.data),
...)

на стороне C ++ функция определяется как

void myCppFunction(ushort *seq, ushort *sequence1, ...)

Когда я просто печатаю то, что получаю на стороне C ++, как seq, sequence1, я получаю значения, которые намного выше неподписанного короткого диапазона, и последовательность нулей не заполнена нулями.
Компиляция идет хорошо, но реальный запуск приводит к ошибке сегментации.
Где я не прав?

1

Решение

ushort 2 байта и numpy.uint8 1 байт.

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector