标签:
>>> import ctypes >>> from ctypes import * >>> dir(ctypes) [‘ARRAY‘, ‘ArgumentError‘, ‘Array‘, ‘BigEndianStructure‘, ‘CDLL‘, ‘CFUNCTYPE‘, ‘ DEFAULT_MODE‘, ‘DllCanUnloadNow‘, ‘DllGetClassObject‘, ‘FormatError‘, ‘GetLastEr ror‘, ‘HRESULT‘, ‘LibraryLoader‘, ‘LittleEndianStructure‘, ‘OleDLL‘, ‘POINTER‘, ‘PYFUNCTYPE‘, ‘PyDLL‘, ‘RTLD_GLOBAL‘, ‘RTLD_LOCAL‘, ‘SetPointerType‘, ‘Structure ‘, ‘Union‘, ‘WINFUNCTYPE‘, ‘WinDLL‘, ‘WinError‘, ‘_CFuncPtr‘, ‘_FUNCFLAG_CDECL‘, ‘_FUNCFLAG_PYTHONAPI‘, ‘_FUNCFLAG_STDCALL‘, ‘_FUNCFLAG_USE_ERRNO‘, ‘_FUNCFLAG_U SE_LASTERROR‘, ‘_Pointer‘, ‘_SimpleCData‘, ‘__builtins__‘, ‘__doc__‘, ‘__file__‘ , ‘__name__‘, ‘__package__‘, ‘__path__‘, ‘__version__‘, ‘_c_functype_cache‘, ‘_c alcsize‘, ‘_cast‘, ‘_cast_addr‘, ‘_check_HRESULT‘, ‘_check_size‘, ‘_ctypes_versi on‘, ‘_dlopen‘, ‘_endian‘, ‘_memmove_addr‘, ‘_memset_addr‘, ‘_os‘, ‘_pointer_typ e_cache‘, ‘_string_at‘, ‘_string_at_addr‘, ‘_sys‘, ‘_win_functype_cache‘, ‘_wstr ing_at‘, ‘_wstring_at_addr‘, ‘addressof‘, ‘alignment‘, ‘byref‘, ‘c_bool‘, ‘c_buf fer‘, ‘c_byte‘, ‘c_char‘, ‘c_char_p‘, ‘c_double‘, ‘c_float‘, ‘c_int‘, ‘c_int16‘, ‘c_int32‘, ‘c_int64‘, ‘c_int8‘, ‘c_long‘, ‘c_longdouble‘, ‘c_longlong‘, ‘c_shor t‘, ‘c_size_t‘, ‘c_ubyte‘, ‘c_uint‘, ‘c_uint16‘, ‘c_uint32‘, ‘c_uint64‘, ‘c_uint 8‘, ‘c_ulong‘, ‘c_ulonglong‘, ‘c_ushort‘, ‘c_void_p‘, ‘c_voidp‘, ‘c_wchar‘, ‘c_w char_p‘, ‘cast‘, ‘cdll‘, ‘create_string_buffer‘, ‘create_unicode_buffer‘, ‘get_e rrno‘, ‘get_last_error‘, ‘memmove‘, ‘memset‘, ‘oledll‘, ‘pointer‘, ‘py_object‘, ‘pydll‘, ‘pythonapi‘, ‘resize‘, ‘set_conversion_mode‘, ‘set_errno‘, ‘set_last_er ror‘, ‘sizeof‘, ‘string_at‘, ‘windll‘, ‘wstring_at‘] 一个这样的小玩意儿包含的东西还真不少啊,可以看到主要包括一些C语言的类型定义。 当你import ctypes的时候,一些动态库已经载入了: >>> print(windll.kernel32) >>> print(windll.user32) >>> print(windll.msvcrt) 直接来使用试试吧,我们最喜欢的自然是Hello World。这里直接调用MessageBox。查查MSDN,MessageBox在User32中,我们调用它。 >>> MessageBox = windll.user32.MessageBoxW >>> MessageBox(0,"Great","Hello World", 0) 然后,就调用了MessageBox了。。。。。。。。
标签:
原文地址:http://www.cnblogs.com/ribavnu/p/4820493.html