У меня есть следующая функция C, экспортированная из dll
typedef struct _TStubMethod
{
TBoolean stubAtEnd;
TBoolean longStub;
} TStubMethod;
int JpmcdsStringToStubMethod
(char *name,
TStubMethod *stubMethod
);
В Python я определил тип & функцию и вызвал функцию следующим образом:
class TStubMethod(Structure):
_fields_ = [
('stubAtEnd', c_int),
('longStub', c_int)
]
def JpmcdsStringToStubMethod(dll, name, stubmethod):
func = dll.JpmcdsStringToStubMethod
func.argtypes = [POINTER(c_char), POINTER(TStubMethod)]
func.restype = c_int
return func(name, stubmethod)
stubFS = TStubMethod(False, False)
ret = JpmcdsStringToStubMethod(dll, 'F/S', byref(stubFS))
Яполучаю ошибку следующим образом.Что я делаю неправильно?
ArgumentError Traceback (most recent call last)
<ipython-input-61-ec7303283f89> in <module>
25
26 stubFS = TStubMethod(False, False)
---> 27 ret = JpmcdsStringToStubMethod(dll, 'F/S', byref(stubFS))
<ipython-input-55-c8ab0da16b04> in JpmcdsStringToStubMethod(dll, name, stubmethod)
9 func.argtypes = [POINTER(c_char), POINTER(TStubMethod)]
10 func.restype = c_int
---> 11 return func(name, stubmethod)
ArgumentError: argument 1: <class 'TypeError'>: wrong type
Спасибо за вашу помощь.