Nathaniel Hayes wrote:


On Tue, Oct 20, 2009 at 12:12 PM, MRAB <pyt...@mrabarnett.plus.com <mailto:pyt...@mrabarnett.plus.com>> wrote:

    The digits in that pointer value look suspiciously like the character
    codes of a string rather than an actual address:

     >>> "\x42\x71\x61\x44"
    'BqaD'

    It looks like the first 4 characters of a string starting 'DaqB' are
    being used as a string pointer on a little-endian platform.


        I am really at a loss here, so any insight at all would be
        great.  Something odd though, is that when I pass just c_char_p
        instead of an array of c_char_p, I receive the one device I have
        installed on this computer, and it works great.  However, when I
        make an array of just one item, I get these odd errors.

Well, the name of the device is DaqBoard2K, so thats where the DaqB is coming from. That means that the function worked, but I can seem to get the information in a usable format. I'm not well versed in C or anything low level like that, so not really sure what is going behind the scenes. I have seen (c_char_p*4)() would make an iterable ctypes array of 4 c_char_p variables, but it seems like the address to the string has been overwritten by the string itself?

What does the documentation of the C API actually say? What does the
parameter list of the C function look like?
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to