标签:from test extern blog LL库 bug 分享 版本 动态链接库
python3使用ctypes在windows中访问C和C++动态链接库函数示例2 创建VS的win32项目,选择DLL库的空项目,也可以选择导出符号,他会帮你把动态库的一些宏做好。
3 创建testctypes.cpp代码
其中extern "C"表示将此函数编译为c语言函数,如果你源码是.c也就是用c语言编译则不需要加extern "C"。
__declspec(dllexport) 是windows中特有的导出库函数,如果没有这个库函数是访问不到的,如果做跨平台到linux中可以通过宏语法把它去掉。
4 将dll文件导出设置到当前项目路径,并完成编译
我们编译出win32的debug库,注意位数不能错,如果是python是64位的也编译64位的库
三 Python部分的代码
from ctypes import
lib = CDLL("testctypes") #可以加路径
lib.CFunction()
from ctypes import 导入ctypes库所有类和函数
CDLL("testctype")加载具体的动态链接库文件,可以加入路径比如 dll/testctype ,在windows中省略动态库的后缀名dll,python会找testctype.dll的文件。注意dll文件可以放在python执行的路径下,也可以放到系统路径或者path环境变量所设置的路径。
lib.CFunction() 加载动态链接库中的CFunction函数,注意虽然我们用c++来做扩展库,python本身也做了很多支持c++的代码,但ctypes访问函数只支持C语言函数,C++函数因为有重载函数名不确定,所以无法访问。
运行测试结果
测试成功,第一步我们完成,下一篇文章再开始来添加参数和返回值
相关课程视频可以观看
http://edu.51cto.com/sd/f8c82
python3使用ctypes在windows中访问C和C++动态链接库函数示例
标签:from test extern blog LL库 bug 分享 版本 动态链接库
原文地址:http://blog.51cto.com/xiacaojun/2317778