code: def set_signature(library, function_name, argtypes, restype, errcheck):
      
  
      func = getattr(library, function_name)
      func.argtypes = argtypes
      if restype is not None:
          func.restype = restype
      if errcheck is not None:
          func.errcheck = errcheck
docs: Set the signature of single function in a library.
  
      :param library: ctypes wrapped library.
      :type library: ctypes.WinDLL or ctypes.CDLL
      :param function_name: name of the function as appears in the header file.
      :type function_name: str
      :param argtypes: a tuple of ctypes types to specify the argument types that the function accepts.
      :param restype: A ctypes type to specify the result type of the foreign function.
                      Use None for void, a function not returning anything.
      :param errcheck: a callabe
  
      :raises: AttributeError