python和cdll在ctypes中。不能使用printf

时间:2012-05-15 06:09:24

标签: python printf ctypes

我是学习Python的初学者。 我正在使用的python版本是3.2.1.1 我正在尝试按照docs.python.org上的教程

学习ctypes

在互动提示中,

import ctypes
libc = cdll.msvcrt
printf = libc.printf
printf("%d", 42)

它应该返回值42 但在我的情况下,它返回0。 所以有什么问题?非常感谢。


现在我从ctypes import cdll添加一个>>>后,结果就显示了这个

>>>from ctypes import *
>>>libc = cdll.msvcrt 
>>>printf = libc.printf 
>>>printf("%d", 42)
Traceback (most recent call last):
  File "<stdin>", line1, in <module>
TypeError: 'CDLL' object is not callable

1 个答案:

答案 0 :(得分:2)

实际上,它应该返回2作为写入stdout的字节数。它似乎在我的Windows安装上正常工作(在我添加缺少的from ctypes import cdll之后)。你在使用Windows吗? msvcrt是仅限Windows的DLL。