KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a DLL containing a C function with a prototype like this: int c_read_block(uint32 addr, uint32 *buf, uint32 num); I want to call it from Python using ctypes. The function expects a pointer to a chunk of memory, into which it will write the results. I don't know how to construct and pass such a chunk of memory. The ctypes documentation isn't much help. Constructing an array and passing it "byref", like this: cresult = (c_ulong * num)() err = self.c_read_block(addr, byref(cresult), num) Gives this error message: ArgumentError: argument 3: <type 'exceptions.TypeError'>: expected LP_c_ulong instance instead of pointer to c_ulong_Array_2 I guess that is because the Python ulong array is nothing like a c uint32 array. Should I use create_char_string . If so, how do I persuade Python to "cast" that buffer to an LP_c_ulong?
Tags (comma-separated)
Save Edits
Cancel