Имеется сторонняя библиотека, написанная на си++. Нужно вызвать функцию из этой либы, она возвращает JSON в ustring (судя по документации, исходников либы нет). В общем, нужно этот JSON как-нибудь заполучить и прочитать/провести манипуляции с ней.
Что я делаю:
from ctypes import * lib = CDLL('libName.so') checkapi = lib.checkApi # checkApi - это и есть та самая злосчастная функция, вывод которой мы хотим получить. checkapi.argtypes = [] # указанная функция не принимает аргументов checkapi.restype = c_wchar_p # это вроде как указатель на юникодовый стринг result = checkapi() print type(result) print cast(result, c_wchar_p).value
./testposapi.py
<type 'str'>
#кракозябры
#кракозябры
ах да, извините, забыл упомянуть, что ос 64-битная линукс, python тоже 64-битный, как и либа. если быть точнее то ос убунту 15.04, python 2.7.9