ПРИМЕЧАНИЕ. У меня есть целая куча кода, поэтому она в настоящее время хранится here.Функция не работает должным образом
Итак, у меня есть два файла. Файл CPP является частью библиотеки C .so, которая использует ctypes для интеграции с Python. Однако, когда я бегу test.py, это ничего не печатать, даже если я приписан тип возвращаемого
interfaceLib.concatString()
к переменной «текст», который затем распечатать.
Теперь я получаю файл ошибки "test.py", строки 10, в текст = interfaceLib.concatString (str1, str2) ctypes.ArgumentError: аргумент 1: <класс 'TypeError' >: неправильный тип –
Axmill
Попробуйте удалить строку 'interfaceLib.concatString.argtypes = [c_char_p, c_char_p]' или преобразовать строки в байтовые массивы с помощью 'encode' (см. отредактированный ответ). Установка 'argtypes' не требуется для целых чисел, строк или массивов байтов, но для всех остальных типов. – mhavu
Интерфейс C не может использовать объекты '' string 'C++. Измените его на 'char *'. – eryksun