pythonnet в аргументах C # dll - PullRequest
1 голос
/ 09 июля 2019

Я использую python3.7 и версию pythonnet: 2.4.0, и я использую C # 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, "")

или

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

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

1 Ответ

0 голосов
/ 10 июля 2019

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

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)
...