"Georg" <nob...@nowhere.org> wrote in message news:7pb8ubfll...@mid.individual.net...
Hi Mark,

many thanks for your valuable help.

# numVars contains size of returned arrays.  Recast to access.
varNamesArray = c.cast(varNames,c.POINTER(PCHAR * numVars.value))
varTypesArray = c.cast(varTypes,c.POINTER(INT * numVars.value))

One last question: You created an object varNamesArray as an ctypes array. This object has a method "contents". How do I find out what other methods this objects has? For instance a method to retrieve the size of the array? Is this documented somewhere?

The "contents" property is how you dereference a ctypes pointer. See "16.15. ctypes" and specifically "16.15.1.14. Pointers" in the Python 2.6.4 documentation. "16.15.1.13. Arrays" documents that arrays support len().


import ctypes as c
a = (c.c_int * 5)()
p = c.pointer(a)
p.contents  # p points to an array of 5 integers
<__main__.c_long_Array_5 object at 0x009B46C0>
len(p.contents)   # or just len(a)
5

You can use "dir(p)" or "help(p)" to find out information about methods and attributes of an object. Both show that 'p' has a contents attribute and 'a' supports the __len__ method.

-Mark


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to