鱼C论坛

 找回密码
 立即注册
查看: 1738|回复: 8

[已解决]我该怎么去里面的返回值?

[复制链接]
发表于 2020-3-13 16:12:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 wnhuiyou 于 2020-3-13 16:14 编辑

我在调用一个DLL动态链接库的时候,它返回0,那说明我调用成功了,但是ret 最后面有一个参数可以为空,我要怎么取 cardHexStr 的值呢?  我附上文档。

这是我写的代码:

from ctypes import *

dll = CDLL("D:\python\DLL\proRFL.dll")

ret = dll.GuestCard(1, 5898240, 1, 0, 1, 0, '2007201345', '2009201845', '01020599', '')


print(ret)


这是文档信息:

功能:发行“客人卡”,又称“宾客卡”或“房卡”

C++原型:int __stdcall GuestCard(uchar d12,int dlsCoID,uchar CardNo,uchar dai,uchar LLock,uchar pdoors,uchar BDate[10],uchar EDate[10],uchar LockNo[8],uchar *cardHexStr)
参数说明:
  d12                    USB类型,对于proUSB固定为1
  dlsCoID              酒店标识,可以从现有卡片读取
  CardNo               同一分钟内发卡最多16张,每发一张卡加1
  Dai                     客人代,0--255,用于后卡覆盖前卡,一般情况下固定为0
  LLock                  反锁标志,1能开反锁,0不能开反锁
  pdoors                公共门标志,1能开公共门,0不能开
  BDate                 发卡时间10位数字字符串,包含年月日时分,各占两位
                           例:'0905201345'表示2009/05/20 13:45
  EDate                 退房时间10位数字字符串,包含年月日时分,各占两位
  LockNo               锁号8位数字字符串,从门锁软件的房间定义里获取
cardHexStr            返回的卡数据字符串    (我想用python取这个值
返回:0表示成功,否则失败

最佳答案
2020-3-13 17:50:09
ctypes 已带相关 类型
https://www.cnblogs.com/baihuitestsoftware/articles/5345089.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-13 16:26:58 | 显示全部楼层
问题说明的很详细。很多人连提问都不会。点个赞!

具体如何获取cardHexStr参数,我也不知道,可以给你提个建议,你查看一下dll库,应该有其他函数是用来获取这个参数的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 16:28:07 | 显示全部楼层
sunrise085 发表于 2020-3-13 16:26
问题说明的很详细。很多人连提问都不会。点个赞!

具体如何获取cardHexStr参数,我也不知道,可以给你提 ...

dll 库看不了,打开就全是乱码的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 16:31:19 | 显示全部楼层
wnhuiyou 发表于 2020-3-13 16:28
dll 库看不了,打开就全是乱码的

dll库不是直接打开的。我之前也用过C++的dll库,查看过库函数,但是具体怎么操作忘记了,只记得是在cmd窗口查看的。你可以网上找一下查看dll库函数的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 16:31:23 | 显示全部楼层
试试这个

https://blog.csdn.net/weixin_44733660/article/details/102861840
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-13 17:13:56 | 显示全部楼层
ba21 发表于 2020-3-13 16:31
试试这个

https://blog.csdn.net/weixin_44733660/article/details/102861840

不行呀
D:\python\Python38-32\python.exe D:/python/DLL/dll.py
Traceback (most recent call last):
  File "D:/python/DLL/dll.py", line 18, in <module>
    sio = io.StringIO(ret)
TypeError: initial_value must be str or None, not int
SetupDiDestroyDeviceInfoList
进程已结束,退出代码 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-13 17:50:09 | 显示全部楼层    本楼为最佳答案   
ctypes 已带相关 类型
https://www.cnblogs.com/baihuitestsoftware/articles/5345089.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-16 16:11:16 | 显示全部楼层
本帖最后由 wnhuiyou 于 2020-3-16 16:19 编辑


这个网址里面的详解 我看得有点懵,能在请教你一个问题吗 就是 现在 cardHexStr 这个参数 是DLL返回一条数据给我,是uchar *类型的,大致意思是说 python要定义一个容器存下它返回来的数据,存在里面后,最后通过python定义的这个容器参数 再读出来  所以我在 python 里面开一个空间存这个数据容器, 我该怎么去设定呀?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-16 22:09:18 | 显示全部楼层
wnhuiyou 发表于 2020-3-16 16:11
这个网址里面的详解 我看得有点懵,能在请教你一个问题吗 就是 现在 cardHexStr 这个参数 是DLL返回一 ...

这个好像是老版的,你找下python3版本的资料看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 23:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表