我正在使用 ctypes 并在 Python 2.5 中加载 msvcrt.dll。
>>> from ctypes import *
>>> libname = 'msvcrt.dll'
>>> libc = CDLL(libname)
>>> libc.printf("Hello World\n")
12
>>>
为什么不打印
Hello World
?
为什么不打印 Hello World?
从控制台运行时,它在我的 Python(ActiveState,2.6)中执行:
>>> from ctypes import *
>>> libc = CDLL('msvcrt.dll')
>>> libc.printf("Hello world\n")
Hello world
12
(来源:typepad.com)
对于来到这里但无法在 Python 3.x 上运行的其他人,原因是你必须传递一个字节字符串(b“whatever”)而不是常规的 python 文字字符串。
所以这段代码在我的 OSX High Sierra 上运行良好:
from ctypes import *
libc = CDLL('/usr/lib/libc.dylib')
libc.printf(b"Testing: hello world")
我不知道ctypes在windows系统下是如何工作的,但是当我在使用ubuntu系统时,我是这样写的:libc=CDLL("libc.so.6") 那么,你的库有问题吗?