Apua Python ctypes!

Miten alla olevaa functiota kutsutaan pythonista ctypesiä käyttäen?
GetNames(MYNAME* list, int max_names) ;

typedef struct _name_list
{
char name[10] ;
} MYNAME ;

MYNAME names[46];
GetNames(names, 46);

Alla oma python yritys, en ymmärrä mikä vialla?

import ctypes
class MYNAME(ctypes.Structure):
_fields_ = [
("name", (ctypes.c_char*10))]

names = (MYNAME * 46)()

python_get_names.argtypes = [ctypes.POINTER(MYNAME*46), ctypes.c_int]
python_get_names(names, 46)

Tule virhe:
ValueError: Procedure called with not enough arguments (20 bytes missing) or wrong calling convention
Ilmianna
Jaa

2 Vastausta



Tästä on poistettu viesti sääntöjen vastaisena.

Ilmianna
Jaa
Lisää mutuilua,

Viittaako kertomasi virhe, antamaasi esimerkkiin, epäilyttää että ei, vaan virhe ilmoitus viittaa ohjelmassa muualla olevaan virheeseen, eikö niin ?
Ilmianna
Jaa
Kummalista moderointia,

avaus sisältää ohjelmakoodia monta riviä enemän kuin minun antamani vastaus, kuitenkin vain minun vastaus poistettiin, eikä senkään poistoon olisi pitänyt olla mitään aihetta.

Merkillistä touhua, tosiaan, ei mitään tolkua.
Ilmianna
Jaa

Vastaa alkuperäiseen viestiin

Apua Python ctypes!

Miten alla olevaa functiota kutsutaan pythonista ctypesiä käyttäen?
GetNames(MYNAME* list, int max_names) ;

typedef struct _name_list
{
char name[10] ;
} MYNAME ;

MYNAME names[46];
GetNames(names, 46);

Alla oma python yritys, en ymmärrä mikä vialla?

import ctypes
class MYNAME(ctypes.Structure):
_fields_ = [
("name", (ctypes.c_char*10))]

names = (MYNAME * 46)()

python_get_names.argtypes = [ctypes.POINTER(MYNAME*46), ctypes.c_int]
python_get_names(names, 46)

Tule virhe:
ValueError: Procedure called with not enough arguments (20 bytes missing) or wrong calling convention

5000 merkkiä jäljellä

Peruuta