Personal tools
You are here: Home 博客群 潘俊勇的Blog ctypes: 使用python调用C编写的动态链接库
Log in


Forgot your password?
Recent Comments
 如何申请PLONE空间? (xuc2013) 2008-08-25
 我的修改,支持中文字体和换行 (Anonymous User) 2008-08-08
  (oSky) 2007-10-30
 得有银哪! (Zoomq) 2007-10-25
 晕菜 (Anonymous User) 2007-10-21
 
Document Actions

ctypes: 使用python调用C编写的动态链接库 ctypes: 使用python调用C编写的动态链接库

Submitted by panjy. on 2004-11-03 07:21. Python
ctypes是一个Python模块,使用他可以在Python中创建和操作C语言的数据类型,这样可以在动态链接库中传递参数到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以上的版本。

so cool

Posted by 韩祝鹏 at 2004-11-23 21:18

thx

很酷阿, 可以说是太棒了

求救,下的ctypes装不上啊

Posted by Anonymous User at 2006-06-15 05:08

下的ctypes装不上啊

和用VC调用有什么不同

Posted by Anonymous User at 2007-10-08 04:00

请问我用Python调用一个DLL和用VC调用有什么不同么? 我这里用Py调用和VC得到的返回值不同,因为要调用的DLL内部有许多文件操作,VC调用成功,返回0,Py调用得到的是文件无效返回值1(没有DLL的代码,只有简单的接口说明,Py脚本和VC的DLL放在同一个目录下执行,完全可重现)。这个失败让我感觉似乎Py的环境和VC的调用环境有些微的不同,但是又不知道是哪里出了问题,如果了解的话,请帮助一下,谢谢。 ffb toyclub@sina.com


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: