Найти - Пользователи
Полная версия: траблы с ctypes
Начало » Python для экспертов » траблы с ctypes
1
niro
Есть одна библиотека на C. Ей я передаю название файла, она открывает этот файл и получает из него определенные данные. Данные в основном текстовые, но при получении этих данных и выводе их я получаю числа. Если работать с предложенным примером на C, то все нормально. Как это решается ?
bialix
а пробовали сообщить ctypes, что функция возвращает указатель на char*?

а вообще на такой вопрос могут ответить только телепаты. мы ж не видим примера кода, так что толкового ответа будете ждать долго.
niro
как ей сообщить о типе char ?
bialix
курить доку насчет .restype
slivlen
bialix
а вообще на такой вопрос могут ответить только телепаты.
Значит с этим вопросом надо идти на ЛОР :)
niro
Спрашивать что либо на ЛОРе себе дороже.
import ctypes

lib = ctypes.cdll.LoadLibrary('./libgpx.so')
file = lib.openGP("1.gp3")
title = lib.getTitle(file)
artist = lib.getArtist(file)
print 'Title: %s'%title
print 'Artist: %s'%artist
Библиотека libgpx.so достает из бинарного файла определенный текст. Но данная программа выводит только числовые значение.
Андрей Светлов
адреса она тебе выдает. bialix правильно писал - restype. Типа lib.getTitle.restype = c_char_p. В простейшем случае - поможет.
И вообще, без приведения .h файла для этой загадочной библиотеки (или просто определений интересующих функций) все очень напоминает гадание.
niro
Точно, я просто не так до этого использовал restype. Спасибо
ph
Насчет gp3
Есть такая программа на питоне написанная - songwrite
Это редактор таблатур с tk`шным интерфейсом, в нем есть функция импорта из некоторых форматов в т.ч. gp3(нативная, на питоне сделанная)
Можешь к нему подцепиться(он умеет преобразовывать в xml, например) или просто выдрать нужные функции.
А для чего тебе если не секрет?
Я вот делал аналог guitar pro и подобных на основе ajax, на основе songwrite сделал в нем импорт/экспорт из/в gtp и midi. Ну и воспроизведение(через midi)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB