`
xiaguangme
  • 浏览: 74235 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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

阅读更多

转自:http://blog.czug.org/panjy/ctypes

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

panjy 提交于 2004-11-03 21: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以上的版本。

分享到:
评论

相关推荐

    ctypes--Python调用c接口.pdf

    标题“ctypes--Python调用c接口.pdf”表明文档讲述了Python中的ctypes模块,该模块用于Python程序调用C语言编写的动态链接库(DLLs)或共享库。Ctypes是Python的一个扩展库,允许Python代码直接操作C语言的数据类型...

    使用c语言编写动态链接库(linux下.so文件,windows下dll文件),使用python调用c语言接口。.zip

    - 使用Python的`ctypes`模块可以直接调用C语言编写的动态链接库。`ctypes`提供了一种方式来指定函数原型,如参数类型和返回类型,从而能正确地调用C函数。 - 另一种方法是使用`Python.h`头文件和`SWIG`工具来创建...

    python调用动态链接库demo.zip

    Python调用动态链接库(Dynamic Link Library,DLL)是一个常见的需求,特别是在需要利用C或C++编写的高效代码时。本示例“python调用动态链接库demo”提供了一个使用Python与C语言交互的实例。下面我们将详细探讨这...

    python调用C与C++语言.pdf

    在C语言编写动态链接库的示例代码中,定义了两个函数:`foo`和`add`。函数`foo`是一个空实现的函数,而`add`函数则打印输入的两个整数,并返回它们的和。但是,根据描述,原始文档中存在OCR扫描错误,实际上`add`...

    使用c lib的python模块ctypes

    Python中的`ctypes`模块是Python标准库的一部分,它允许我们直接在Python代码中调用C语言编写的动态链接库(DLLs on Windows,.so files on Linux等)。这个功能对于那些希望利用C库的强大功能,同时又不想或不能...

    C#/Python调用C动态链接库测试

    本案例聚焦于"C#/Python调用C动态链接库测试",这是一个涉及到多语言交互和系统级API调用的问题。动态链接库(DLL)是Windows操作系统中的一种共享库机制,允许多个程序共享同一段代码,节省内存并便于代码维护。...

    python ctypes 调用宇视网络设备sdk 登录、截图、云台控制等,二次开发,联系方式1261806584(QQ)

    Python的ctypes库是用于调用C语言编写的动态链接库(DLL)或共享库的模块,这在进行跨语言的交互和系统级编程时非常有用。在这个特定的项目中,我们看到它被用于调用宇视(Uniview)网络设备的SDK,这是一个专门针对...

    C/C++、matlab、python:生成c动态库,matlab、python调用

    本主题涉及的是如何在C/C++中创建一个动态链接库(DLL),然后在MATLAB和Python环境中调用这个库,实现代码复用和高效计算。我们将讨论C/C++、MATLAB和Python之间的接口技术,以及涉及到的关键步骤。 首先,我们来...

    python调用c++动态库Demo

    本教程将详细讲解如何使用Python调用C++编写的动态链接库(DLL),并涉及回调函数的实现,非常适合初学者学习。 首先,我们需要了解动态库的概念。动态库(Dynamic Link Library,简称DLL)是一种包含可由多个程序...

    python通过ctypes封装调用c开源音频引擎libsoundio

    2. **加载库**:使用`ctypes.cdll.LoadLibrary()`或`ctypes.CDLL()`函数加载libsoundio的动态链接库。确保库文件路径正确无误。 ```python soundio = ctypes.cdll.LoadLibrary('path/to/libsoundio.so') # 对于Linux...

    so编写和Python调用.so文件

    本教程聚焦于如何在Linux环境下使用C++编写`.so`动态链接库,并通过Python进行调用,这对于初学者来说是一个很好的实践项目。`.so`文件是Linux系统中的动态链接库,它包含可被其他程序共享的函数和数据。 首先,...

    python调用C语言.zip

    ctypes是Python的标准库之一,它提供了一种方法,使Python能够调用C语言编写的动态链接库。ctypes允许我们定义C的数据类型,并且可以将这些类型转换为Python对象,反之亦然。它还支持函数指针,使得我们可以传递...

    python调用C的例子

    这里,`CDLL`是`ctypes`模块中的一个类,用于加载动态链接库并提供了一个接口去调用其中的函数。 ### 知识点四:调用C函数 一旦DLL被加载到Python环境中,就可以像调用普通Python函数一样调用C函数了。但在调用前...

    python调用c语言实现comtrade读取

    本主题探讨的是如何利用Python调用C语言编写的动态链接库(DLL)来读取COMTRADE格式的数据文件。COMTRADE(Compact Memory Trade Data Exchange)是一种广泛用于电力系统保护和自动化设备之间的数据交换格式,它存储...

    python调用C/C++ demo

    `ctypes`是Python的标准库之一,它允许我们直接调用C语言编写的动态链接库(.dll或.so文件)。首先,你需要用C语言编写一个包含函数声明和实现的库。例如,你可以创建一个名为`lib_c_demo.c`的文件,定义一个简单的...

    PyPI 官网下载 | ctypes-ejdb-0.2.1.tar.gz

    `ctypes`是Python的标准库之一,它允许Python代码调用C语言编写的动态链接库(DLLs on Windows或.so files on Unix-like systems)。通过`ctypes`,Python程序员可以与C库进行低级别的交互,这在处理性能敏感的任务...

    linux 下 python调用c或者c++编写的代码使用案例

    ctypes是Python的标准库之一,它允许Python程序直接调用C编译的动态链接库(DLLs或.so文件)。首先,你需要编写C/C++代码并编译为动态库。然后在Python中,你可以通过ctypes导入该库,并定义C函数的原型,以Python...

    Python中调用C++dll例子

    `ctypes`是Python的一个标准库,它允许我们直接调用C语言编译的动态链接库,从而实现了Python与C/C++代码的交互。 首先,我们需要理解DLL是什么。DLL(Dynamic Link Library)是Windows操作系统中的一个共享库,...

    Python调用c代码vs2005工程

    本案例主要探讨如何使用Python调用C代码,并结合Visual Studio 2005(VS2005)创建的工程来编译生成动态链接库(DLL)或Python的扩展模块(pyd文件),供Python调用。 首先,我们需要了解Python的C API,它是Python...

Global site tag (gtag.js) - Google Analytics