ctypes: 使用python调用C编写的动态链接库
必须得引用一段Python的创始人van Rossum对ctypes的评价了:
ctypes is very cool! Great piece
of work.
ctypes可以在windows/linux等多个平台上使用,甚至支持Windows上的COM开发!
对ctypes的评价,我和van Rossum的感觉相同:) . 费话不说,在windows上来段“hello world”吧:
>>> from ctypes import *
>>> MessageBox = windll.user32.MessageBoxA
>>> MessageBox(0, '你好,世界!', '第一个ctypes程序', 0) # 调用函数
大家可以看到弹出了一个标准的windows消息框,就这么简单 :-)
实际上书写windll.user32的时候,自动调入了user32.dll这个windows动态库;windll.user32.MessageBoxA则直接引用到了user32.dll动态库中的MessageBox函数。
如此简洁、漂亮,C/C++程序员估计要嫉妒了 :-)
可下载安装 最新的0.92版本, 注意必须配合使用python2.3以上的版本。
和用VC调用有什么不同
请问我用Python调用一个DLL和用VC调用有什么不同么? 我这里用Py调用和VC得到的返回值不同,因为要调用的DLL内部有许多文件操作,VC调用成功,返回0,Py调用得到的是文件无效返回值1(没有DLL的代码,只有简单的接口说明,Py脚本和VC的DLL放在同一个目录下执行,完全可重现)。这个失败让我感觉似乎Py的环境和VC的调用环境有些微的不同,但是又不知道是哪里出了问题,如果了解的话,请帮助一下,谢谢。 ffb toyclub@sina.com
so cool
thx
很酷阿, 可以说是太棒了