[ctypes-users] Structure Wrap Wrong - access violation
Brought to you by:
theller
From: Mark L. <lar...@gm...> - 2009-07-07 16:10:45
|
ctype users, I'm attempting to call a CDLL with the following exported function: [C CODE] struct some_data{ int size,degree,df,order; double *x, *y, lambda; }; __declspec(dllexport) double *some_func(some_data*, char* ); [/C CODE] My python looks like this: [PYTHON] class SOME_DATA(Structure): _fields_ = [("size", c_int), ("degree", c_int), ("df", c_int), ("order", c_int), ("lamb", c_double), ("x", POINTER(c_double)), ("y", POINTER(c_double)) ] libc = CDLL("path\to\dll") x = [4, 4, 7, 7] y = [2, 10, 4, 22] someData = SOME_DATA() someData .size = len(x) someData .degree = 3 someData .df = 0 someData .order = 4 someData .lamb = 1.0 someData .x = (c_double * len(x))(*x) someData .y = (c_double * len(y))(*y) rvErr = c_char_p("") _some_func= libc.some_func _some_func.restype = POINTER(c_double) _some_func(byref(someData),rvErr) [/PYTHON] When I run this I get: WindowsError: exception: access violation reading 0x00000000 This is my first time using ctypes. I'm sure I'm missing something obvious. Thanks for taking a look, Mark |