Я стараюсь общаться с HV-положением через C DLL с Python. Самая простая функция, которую я получаю для работы. Но если я назову более сложную функцию Caenhvinitsystem, я получу ошибку: Oserror: Exception: Access Competing 0x00000001. Я довольно новичок в Ctypes в Python. Насколько я знаю, эта ошибка, возможно, показывает, потому что некоторые из моих аргументов имеют неправильный тип. Но как я могу отладить это больше, чтобы точно знать, какой аргумент неверен? Кто -нибудь видит мою ошибку? < /p>
import os
from ctypes import *
bib = CDLL("CAENHVWrapper")
ret = bib.CAENHVLibSwRel() # This call works
print(c_char_p(ret))
sysType = c_int(1) #SY2527
link = c_int(0) #TCP/IP
#arg = c_char_p(b'149.217.10.241') #i change it for test to c_void_p but later the arg should be the ip adress
arg = c_void_p()
user = c_char_p(b'admin')
passwd = c_char_p(b'admin')
sysHndl = c_int()
# c function definition in the header file
#CAENHVLIB_API CAENHVRESULT CAENHV_InitSystem(
# CAENHV_SYSTEM_TYPE_t system,
# int LinkType,
# void *Arg,
# const char *UserName,
# const char *Passwd,
# int *handle);
# definition of the enum of the first argument
#typedef enum {
# SY1527 = 0,
# SY2527 = 1
#} CAENHV_SYSTEM_TYPE_t;
bib.CAENHVInitSystem.argtypes = [c_int, c_int, c_void_p, c_char_p, c_char_p, POINTER(c_int)]
ret = bib.CAENHVInitSystem(sysType, link, arg, user, passwd, byref(sysHndl))
print(ret)
print(bib.CAENHV_GetError(sysHndl))
Подробнее здесь: https://stackoverflow.com/questions/257 ... 0x00000001
Осеррор: Исключение: Нарушение на нарушение доступа 0x00000001 ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение