1、ctypes为python提供C语言接口,兼容C语言数据类型,可以访问C语言DLL或者shared lib;
2、ctypes导出cdll对象(linux和windows)、windll和oledll对象(这两个只针对windows)来访问DLL或者shared lib:
cdll-------->用cdecl 声明函数的库,如msvcrt.dll
windll-------->用stdcall声明函数的库,如kernel.dll
oledll-------->用stdcall声明函数、同时函数返回HRESULT error code的库
windows载入c库的例子:
>>> from ctypesimport*
>>> printwindll.kernel32
<WinDLL 'kernel32', handle ... at ...>
>>> printcdll.msvcrt
<CDLL 'msvcrt', handle ... at ...>
>>> libc=cdll.msvcrt
linux载入c库的例子:
>>> cdll.LoadLibrary("libc.so.6")
<CDLL 'libc.so.6', handle ... at ...>
>>> libc=CDLL("libc.so.6")
>>> libc
<CDLL 'libc.so.6', handle ... at ...>