code: def _Cfunction(name, flags, errcheck, *types):
      
      if hasattr(dll, name) and name in _Globals:
          p = ctypes.CFUNCTYPE(*types)
          f = p((name, dll), flags)
          if errcheck is not None:
              f.errcheck = errcheck
          # replace the Python function
          # in this module, but only when
          # running as python -O or -OO
          if __debug__:
              _Cfunctions[name] = f
          else:
              _Globals[name] = f
          return f
      raise NameError('no function %r' % (name,))
docs: (INTERNAL) New ctypes function binding.