pythonnet в аргументах DLL С#

Я использую версию python3.7 и pythonnet: 2.4.0, и я использую dll С#, прототип

bool = Read(byte, byte, byte, ref byte[], ref string)

Я использую ctypes, но он всегда показывает TypeError: ни один метод не соответствует заданным аргументам для чтения, один и тот же код может работать в Python2.7 и pythonnet 2.0.0, если я изменил где, большое спасибо.

Read(0xB0, 0, 1, [], "")

Я пытался:

data_array = ctypes.c_byte * 1
Read(0xB0, 0, 1, data_array, "")

or

data_array = ctypes.pointer((ctypes.c_byte * 1)())
Read(0xB0, 0, 1, data_array, "")

но он по-прежнему показывает, что TypeError: метод не соответствует заданным аргументам для чтения


person Alfred    schedule 09.07.2019    source источник


Ответы (1)


Я пробовал ниже, и это работает

import clr
from System import *
from System import Array
slave_addr = Byte(0xB0)
data_addr = Byte(0x21)
bytes_to_read = Byte(0x02)
data_array = Array[Byte]([0] * 2)
script_view = String("")
Read(slave_addr, data_addr, bytes_to_read, data_array, script_view)
person Alfred    schedule 10.07.2019