Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Декабря 05, 2021, 05:11:24 am
Начало Помощь Поиск Войти Регистрация
Новости:

Просмотр сообщений

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Janso

Pages: [1]
1
TRANSAQ Connector / Re: FreeMemory и python
« on: Февраля 19, 2021, 06:38:38 pm »
Полагаю, что так:
XC_ENCODING = 'utf-8'
py_data = cast(data, c_char_p).value.decode(XC_ENCODING)

data - входной параметр вашей callback-функции
py_data - выходной объект-строка

большое спасибо, сработало
и за обертку

буду тестировать дальше

2
TRANSAQ Connector / Re: FreeMemory и python
« on: Февраля 19, 2021, 06:19:36 pm »
Из вашего сообщения я ухватил другой тип и добавил себе
callbackPrototype = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.POINTER(ctypes.c_ubyte))

теперь freememory вроде работает, но данные в колбэк приходят не в том формате
<__main__.LP_c_ubyte object at 0x000002127E854C40>
<class '__main__.LP_c_ubyte'>
<__main__.LP_c_ubyte object at 0x000002127E854C40>
<class '__main__.LP_c_ubyte'>
<__main__.LP_c_ubyte object at 0x000002127E854C40>
<class '__main__.LP_c_ubyte'>

как их превратить в строку или ctypes.c_char_p?

3
TRANSAQ Connector / FreeMemory и python
« on: Февраля 19, 2021, 05:22:27 pm »
Проблемы с написанием кода в питоне:

использование freememory делает непонятно что, ошибок не выдает, но код идущий после этого вызова не выполняется
какие-то проблемы с питоновским 'bytes' ?

dll = ctypes.WinDLL("txmlconnector64.dll")

def callback(incoming_msg):   
    print(etree.tostring(etree.XML(incoming_msg), pretty_print=True, encoding="utf-8").decode())
    dll.FreeMemory(incoming_msg)

callbackPrototype = ctypes.WINFUNCTYPE(ctypes.c_bool, ctypes.c_char_p)
callbackPtr = callbackPrototype(callback)





вообще есть у кого-то хоть какието работающие примеры на питоне?
приходится извращаться с ctypes без особого понимания, что во что конвертируется...
документация отвратительная, примеры только на # - там сидеть копаться днями чтобы понять что к чему



Pages: [1]


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!