This non-public class is the common base class of all ctypes data
types. Among other things, all ctypes type instances contain a
memory block that hold C compatible data; the address of the
memory block is returned by the addressof() helper function.
Another instance variable is exposed as _objects; this
contains other Python objects that need to be kept alive in case
the memory block contains pointers.
Common methods of ctypes data types, these are all class methods (to
be exact, they are methods of the metaclass):
from_address(
address)
This method returns a ctypes type instance using the memory
specified by address which must be an integer.
from_param(
obj)
This method adapts obj to a ctypes type. It is called with the
actual object used in a foreign function call, when the type is
present in the foreign functions argtypes tuple; it must
return an object that can be used as function call parameter.
All ctypes data types have a default implementation of this
classmethod, normally it returns obj if that is an instance of
the type. Some types accept other objects as well.
in_dll(
name, library)
This method returns a ctypes type instance exported by a shared
library. name is the name of the symbol that exports the data,
library is the loaded shared library.
Common instance variables of ctypes data types:
_b_base_
Sometimes ctypes data instances do not own the memory block they
contain, instead they share part of the memory block of a base
object. The _b_base_ readonly member is the root ctypes
object that owns the memory block.
_b_needsfree_
This readonly variable is true when the ctypes data instance has
allocated the memory block itself, false otherwise.
_objects
This member is either None or a dictionary containing Python
objects that need to be kept alive so that the memory block
contents is kept valid. This object is only exposed for
debugging; never modify the contents of this dictionary.