[issue27803] ctypes automatic byref failing on custom classes attributes
Erwan Le Pape
report at bugs.python.org
Mon Aug 29 11:55:22 EDT 2016
Erwan Le Pape added the comment:
I can confirm Eryk got what I meant. I didn't know if it was meant to work that way or if it was simply something that was overlooked so I thought I'd ask, I will look into the ctypes code to provide a patch sometime this week if I can.
Terry, for a working example take the following (on a MS Windows):
>>> from ctypes import *
>>> from ctypes.wintypes import *
>>>
>>> class CustomPHKEY(object):
... def __init__(self, value):
... self._as_parameter_ = HKEY(value)
...
>>>
>>> function = ctypes.windll.advapi32.RegOpenKeyExW
>>> function.argtypes = [HKEY, c_wchar_p, DWORD, DWORD, POINTER(HKEY)]
>>> function.restype = LONG
>>> result = CustomPHKEY(0)
>>> function(0x80000002, 'SOFTWARE', 0, 0x20019, result)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ctypes.ArgumentError: argument 5: <type 'exceptions.TypeError'>: expected LP_c_void_p instance instead of c_void_p
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue27803>
_______________________________________
More information about the Python-bugs-list
mailing list