ctype模块使你能够轻而易举地调用动态链接库中的导出函数,也能使你通过ctype构建复杂的c数据类型,并编写出具备低层内存操作能力的工具函数。ctype库赋予我们类似c语言一样的底层操作能力,同时却又保有动态语言便捷的本性。ctype模块提供了三种不同的动态链接库加载方式:cdll(),
windll(), oledll()。 有了ctype的帮助,可以很简单地使用动态链接库的导出函数,下面用一个例子演示。
例子:
在Windows平台下从运行时C库中解析出函数printf()的内存地址,并使用它输出一条测试信息。
在Windows下,动态链接库msvcrt.dll即为我们的运行时C库,位于C:\Windows\System32\下。
创建printftest.py,输入下列代码:
from ctypes import *
msvcrt=cdll.msvcrt
message_string="Hello world!\n"
msvcrt.printf("Testing:%s",message_string)
运行结果:
Testing:Hello world!