Пытаюсь заставить скрипт работать со сторонней DLL.
Нужно задать коллбэк-функцию с таким описанием typedef bool (*tcallback)(BYTE* pData);
Делаю так:
def testcallback(s): print s .... callback= CFUNCTYPE(c_bool, c_char_p)(testcallback)
Получаю в результате такую строку с крякозябрами: <server_status connected=“error”>Сервер РЅРµ доступен</server_status>
Должно быть: <server_status connected=“error”>Сервер не доступен</server_status>, т.е. я имею дело с юникодом, которые неправильно интерпретируется, как cp1251
Ок, делаю так:
def testcallback(s): print s .... callback= CFUNCTYPE(c_bool, c_wchar_p)(testcallback)
Получаю ошибку UnicodeEncodeError: ‘ascii’ codec can't encode characters in position 0-40: ordinal not in range(128)
Что я делаю не так?