python中使用ctypes调用MinGW生成的动态链接库(dll)
来源:互联网 发布:海淘网站哪个好 知乎 编辑:程序博客网 时间:2024/05/18 15:07
关于gcc编译dll的我就不说了,网上举例一大堆,下面以g++为例。
假设有一个test.cpp文件如下:
extern "C" {__declspec(dllexport) double add(double x,double y);}double add(double x,double y){return x+y;}在MinGW中使用g++编译:
g++ -shared -Wl,--kill-at,--output-def,test.def -o test.dll test.cpp
在python中可以这样调用生成的dll文件:
import ctypesdll = ctypes.cdll.LoadLibrary('test.dll') #加载动态链接库f=dll.add #提取函数f.argtypes=[ctypes.c_double,ctypes.c_double] #定义参数类型f.restype=ctypes.c_double #定义函数返回值类型f(2.5,3.5) #计算显示的结果为:
6.0
注意:加载的时候要根据你将要调用的函数是符合什么调用约定的。
stdcall调用约定:两种加载方式
Objdll = ctypes.windll.LoadLibrary("dllpath") Objdll = ctypes.WinDLL("dllpath")cdecl调用约定:也有两种加载方式
Objdll = ctypes.cdll.LoadLibrary("dllpath") Objdll = ctypes.CDLL("dllpath")
下面的这个文章写得不错,还讲到了结构体:
http://blog.csdn.net/magictong/article/details/3075478
- python中使用ctypes调用MinGW生成的动态链接库(dll)
- ctypes: 使用python调用C编写的动态链接库
- python ctypes 调用 dll动态库小结
- 用python ctypes调用动态链接库
- Python:使用ctypes库调用外部DLL
- Python:使用ctypes库调用外部DLL
- Python:使用ctypes库调用外部DLL
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- Python调用windows下DLL详解 - ctypes库的使用
- 【Python】Python通过ctypes调用C动态链接库
- UML之六——部署图(Deployment Diagram)
- 【读书笔记】《未来闪影》罗伯特·J·索耶
- 数据类型对应字节数(32位,64位 int 占字节数)
- 创建守护进程
- android开发中animation详解,rotate,translate,alpha属性分析
- python中使用ctypes调用MinGW生成的动态链接库(dll)
- ExpandableListView 改变属性
- 安卓手机的广播事件
- 动态规划算法
- win32 play flash file
- /etc/init.d/functions详解(转载)
- hibernate学习笔记(map映射)
- 第十一次上机
- 事物传播类型