- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Python: 使用 ctypes 库调用外部 DLL
一、Python 之 ctypes
ctypes 是 Python 的一个外部库,提供和 C 语言兼容的数据类型,可以很方便地调用 C DLL 中的函数。
在 Python2.5 官方安装包都带有 ctypes 1.1 版。ctypes 的官方文档在这里。
ctypes 的使用非常简明,如调用 cdecl 方式的 DLL 只需这样:
view sourceprint?1 from ctypes import *;
2 h=CDLL(msvcrt.dll)
3 h.printf(a=%d,b=%d,a+b=%d,1,2,1+2);
以上代码运行后输出 a=1,b=2,a+b=3 。
二、加载库和普通函数的调用
官方 API 提供的库中有几个主要的函数:
view sourceprint?01 // 初始化
02 int DCSPCLIENTDLL InitInterface( const char *pCenterIP, const unsigned short
nUpLinkSvrPort,const unsigned short nDownLinkSvrPort );
03
04 //释放资源
05 int DCSPCLIENTDLL FiniInterface( void );
06
07 //登录
08 int DCSPCLIENTDLL Login( const unsigned int uiBranchPlatformID, const unsigned int
nUserID, const char *pPassword );
09 //注销
10 int DCSPCLIENTDLL Logout( const unsigned int uiBranchPlatformID, const unsigned int
nUserID, const char *pPassword );
11
12 //发车辆实时定位数据
13 int DCSPCLIENTDLL SendUPRealLocation( const char * const pDeviceId, const char
cDeviceColor,
14 const unsigned short nMsgCode, const _stBPDynamicData * const
pStGpsData );
在 Python 中加载使用:
view sourceprint?01 from ctypes import *
02
03 #加载 API 库
04 api = CDLL(DCSPClientDLL.dll);
05 #初始化函数的参数类型
06 api.InitInterface.argtypes=[c_char_p,c_ushort,c_ushort]
07 api.Login.argtypes=[c_uint,c_uint,c_char_p]
08 api.Logout.argtypes=[c_uint,c_uint,c_char_p]
09
10 #初始化并登录
11 api.InitInterface(u 中心服务器地址 , u上行服务端端口 , u下行客户端端口 )
12 api.Login(platformID,userID,password);
13 #其它操作
14 api.Logout(platformID,userID,password); # 注销
参数类型可以像上面的代码一样预先设定好, 或者在调用函数时再把参数转成相应的 c_***
类型。 ctypes 的类型对应如下 :
如此,完成了简单的第一步。
三、 C 语言中的 Struct 数据结构
在 发 送 实 时 定 位 数 据 的 函 数 SendUPRealLocation 中 有 一 个 参 数 是 结 构 体 类 型
_stBPDynamicData 。python 中没有 struct 这种数据结构, ctypes 很
您可能关注的文档
- PXE安装详解[收集].pdf
- PWM间歇式变量喷雾的雾化特性[整理].pdf
- pxe网络安装系统[整理].pdf
- PyCurses-使用python编写curses[总结].pdf
- Python&&GDAL开发文档[归纳].pdf
- PyDev安装与配置[汇编].pdf
- PyroSim入门教程[整理].pdf
- python2与python3的区别[参照].pdf
- Python3.5.1入门指南中文版(打印版)[归纳].pdf
- Python3.x和Python2.x的区别[收集].pdf
- 2025年浙江省兰溪市事业单位考试(中小学教师类D类)职业能力倾向测验知识点试题完整.docx
- 2025年云南省芒市事业单位考试(中小学教师类D类)职业能力倾向测验重点难点精练试题一套.docx
- 2025年江苏省仪征市事业单位考试(中小学教师类D类)职业能力倾向测验重点难点精练试题完整版.docx
- 2025年湖北省武穴市事业单位考试(中小学教师类D类)职业能力倾向测验重点难点精练试题推荐.docx
- 2025年浙江省桐乡市事业单位公开招聘考试职业能力倾向测验(D类)(中小学教师类)真题及参考答案.docx
- 2025年河南省沁阳市事业单位考试(中小学教师类D类)职业能力倾向测验知识点试题1套.docx
- 2025年江苏省溧阳市职业能力倾向测验事业单位考试(中小学教师类D类)试题一套.docx
- 2025年辽宁省海城市事业单位考试(中小学教师类D类)职业能力倾向测验强化训练试题集及答案一套.docx
- 2025年河北省武安市事业单位公开招聘考试职业能力倾向测验(D类)(中小学教师类)真题完整版.docx
- 2025年辽宁省东港市事业单位公开招聘考试职业能力倾向测验(D类)(中小学教师类)真题及参考答案.docx
最近下载
- 第九版眼科学-PPT课件-第13章-玻璃体疾病.pptx
- 胸、上腹部和盆腔CT图谱.ppt
- 达风21TD 31TD车铣复合数控系统用户手册4.pdf
- 《兰亭集序》(原文带拼音+全文翻译、注释、写作背景).pdf VIP
- 2025年“T8八省联考”语文试题评析及高考备考策略 课件.pptx
- 中考道德与法治7-9年级知识点复习提纲.pdf
- 备考资料中考生物复习提纲:认识生物.docx
- 哈弗-哈弗H8-产品使用说明书-哈弗H8-2017款 2.0T 8AT 四驱 悦享型-CC6480TM62-哈弗H8-使用说明书-红标-中文-18-17.05-01Z1.pdf
- 铜仁市第十二中学2021年中考备考复习方案.docx VIP
- 场平工程专项施工方案.docx
文档评论(0)