Я просто новичок в Python. Я пытаюсь подключиться к лазерному датчику через его библиотеку DLL. Функции SDK в этой библиотеке скомпилированы на языке C ++.
При использовании ctypes в python моя первая попытка - вызвать функцию EthernetScanner_Connect. Параметры функции следующие:
void* EthernetScanner_Connect(char *chIP, char *chPort, int iTimeOut)
Согласно описанию функции в c ++ он должен возвращать указатель NULL в случае сбоя соединения, в противном случае он должен возвращать дескриптор датчика профиля, который будет использоваться в других функциях.
Мой код на python до сих пор:
from ctypes import *
lib=windll.LoadLibrary("c:\\EthernetScanner.dll")
if lib:
print("the Library is loaded")
EthernetScanner_Connect = getattr(lib,"EthernetScanner_Connect")
EthernetScanner_Connect.restype = c_void_p
EthernetScanner_Connect.argtypes =[c_char_p,c_char_p,c_int]
x = EthernetScanner_Connect(b"193.164.200.1\0",b"32407\0",0)
print(x)
пока я ожидаю NULL от этой функции, потому что я еще не подключен к датчику, он дает мне следующее:
the Library is loaded
45940800