class ctypes._FuncPtr
Base class for C callable foreign functions.
Instances of foreign functions are also C compatible data types; they represent C function pointers.
This behavior can be customized by assigning to special attributes of the foreign function object.
-
restype
-
Assign a ctypes type to specify the result type of the foreign function. Use
None
forvoid
, a function not returning anything.It is possible to assign a callable Python object that is not a ctypes type, in this case the function is assumed to return a C
int
, and the callable will be called with this integer, allowing further processing or error checking. Using this is deprecated, for more flexible post processing or error checking use a ctypes data type asrestype
and assign a callable to theerrcheck
attribute.
-
argtypes
-
Assign a tuple of ctypes types to specify the argument types that the function accepts. Functions using the
stdcall
calling convention can only be called with the same number of arguments as the length of this tuple; functions using the C calling convention accept additional, unspecified arguments as well.When a foreign function is called, each actual argument is passed to the
from_param()
class method of the items in theargtypes
tuple, this method allows adapting the actual argument to an object that the foreign function accepts. For example, ac_char_p
item in theargtypes
tuple will convert a string passed as argument into a bytes object using ctypes conversion rules.New: It is now possible to put items in argtypes which are not ctypes types, but each item must have a
from_param()
method which returns a value usable as argument (integer, string, ctypes instance). This allows defining adapters that can adapt custom objects as function parameters.
-
errcheck
-
Assign a Python function or another callable to this attribute. The callable will be called with three or more arguments:
-
callable(result, func, arguments)
-
result is what the foreign function returns, as specified by the
restype
attribute.func is the foreign function object itself, this allows reusing the same callable object to check or post process the results of several functions.
arguments is a tuple containing the parameters originally passed to the function call, this allows specializing the behavior on the arguments used.
The object that this function returns will be returned from the foreign function call, but it can also check the result value and raise an exception if the foreign function call failed.
-
Please login to continue.