在python 中使用 windows dll
如何在python 中使用 windows dll:
首先下载并安装
ctypes 模块
,说明参考
ctypes tutorial
使用示例:
test.c
#include stdio.h>
#include windows.h>
//---------------------------------------
//演示使用DLL
//---------------------------------------
__declspec(dllexport) int addnum1(int a)
{
return (a+1);
}
__declspec(dllexport) int addnum10(int a,char *ca)
{
sprintf(ca,"%d",a+10);
return (a+10);
}
使用命令生成dll.(MinGW环境,详见
DLL Creation in MingW
;Visual C++6.0参见
Python调用c
)
gcc -c test.c
gcc -shared -o test.dll test.o -Wl,--out-implib,libtest.a
test.py
from ctypes import *
fileName="test.dll"
func=cdll.LoadLibrary(fileName)
a =c_int(2)#convert to c type
ret=c_int()
ret=func.addnum1(a)
print "value of a :",ret
b=c_int(20)
str=c_char_p("")
#char point
ret=func.addnum10(b,str)
print "return value is :",ret
print "the string is :",str.value
#windll.FreeLibrary(func)
运行结果为:
value of a : 3
return value is : 30
the string is : 30
注意:
1. 调用的方式:windll与cdll
2. 编译时函数名换名