开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1143|回复: 4
收起左侧

[已解决] 请大佬帮忙 易语言API翻译成火山PC调用

 关闭 [复制链接]
结帖率:53% (9/17)
发表于 2023-12-13 20:20:46 | 显示全部楼层 |阅读模式   吉林省延边朝鲜族自治州
88精币
有没有大佬 帮忙把这4个API函数翻译成火山PC调用的格式






  
DLL命令名返回值类型公开备 注
SCardListReaders整数型 SCardListReaders函数提供一组命名阅读器组中的阅读器列表,消除重复.调用者提供读者组列表,并接收指定组中的读者列表。无法识别的组名将被忽略。此函数仅返回当前连接到系统并可使用的命名组中的读取器
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardListReadersA
参数名类 型传址数组备 注
hContex整数型标识cha询的资源管理器上下文的句柄。资源管理器上下文可以通过之前调用SCardEstablishContext来设置,如果此参数设置为NULL,则对读者的搜索不限于任何上下文
mszGroups文本型mszGroups:输入类型;读卡器组名,为NULL时,表示列出所有读卡器。定义到系统的读取器组的名称,作为多字符串。使用NULL值列出系统中的所有读取器(即 SCard$AllReaders 组)。
ReaderList文本型mszReaders:输出类型;系统中安装的读卡器的名字,各个名字之间用’\0’分隔,最后一个名字后面为两个连续的’\0’。(列出提供的读卡器组中的读卡器的多字符串。如果此值为NULL,SCardListReaders 将忽略pcchReaders 中提供的缓冲区长度,将如果此参数不是NULL则将返回的缓冲区长度写入 pcchReaders,并返回成功代码
pcchReaders整数型pcchReaders:输入输出类型;mszReaders的长度。mszReaders缓冲区的长度(以字符为单位)。此参数接收多字符串结构的实际长度,包括所有尾随空字符。如果缓冲区长度指定为 SCARD_AUTOALLOCATE,则mszReaders将转换为指向字节指针的指针,并接收包含多字符串结构的内存块的地址。这块内存必须用SCardFreeMemory释放。
DLL命令名返回值类型公开备 注
SCardEstablishContext整数型 返回资源管理器上下文的句柄;如果函数成功,则函数返回 SCARD_S_SUCCESS。如果函数失败,则返回错误代码
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardEstablishContext
参数名类 型传址数组备 注
dwScope整数型资源管理器上下文的范围。此参数可以是以下值之一 SCARD_SCOPE_USER:数据库操作在用户的域内执行 ; SCARD_SCOPE_SYSTEM:数据库操作在系统域内执行。调用应用程序必须对任何数据库操作具有适当的访问权限
pvReserved1整数型保留供将来使用,必须为NULL。此参数将允许具有适当特权的管理应用程序代表另一个用户进行操作
pvReserved2整数型保留供将来使用,必须为NULL。此参数将允许具有适当特权的管理应用程序代表另一个用户进行操作
phContext整数型已建立的资源管理器上下文的句柄。这个句柄现在可以提供给其他试图在这个上下文中工作的函数
DLL命令名返回值类型公开备 注
SCardTransmit整数型 SCardTransmit函数向智能卡发送服务请求并期望从卡接收数据
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardTransmit
参数名类 型传址数组备 注
hCard整数型,hCard:输入类型;与智能卡连接的句柄。
pioSendPciSCARD_IO_REQUEST,pioSendPci:输入类型;指令的协议头结构的指针,由SCARD_IO_REQUEST结构定义。后面是使用的协议的协议控制信息。一般使用系统定义的结构,SCARD_PCI_T0(T=0协议)、 SCARD_PCI_T1(T=1协议)、SCARD_PCI_RAW(原始协议)。
pbSendBuffer字节集,pbSendBuffer:输入类型;要发送到智能卡的数据的指针。(指向要写入卡的实际数据的指针
cbSendLength整数型,cbSendLength:输入类型;pbSendBuffer的字节数目。pbSendBuffer参数的长度(以字节为单位)
pioRecvPci整数型pioRecvPci:输入输出类型;指令协议头结构的指针,后面是使用的协议的协议控制信息,如果不返回协议控制信息,可以为NULL。
pbRecvBuffer字节集pbRecvBuffer:输入输出类型;从智能卡返回的数据的指针。
pcbRecvLength整数型pcbRecvLength:输入输出类型;pbRecvBuffer的大小和实际大小。对于 T=0,接收缓冲区必须至少有两个字节长才能接收 SW1 和 SW2 状态字节。
DLL命令名返回值类型公开备 注
SCardConnect整数型 SCardConnect函数在调用应用程序和特定读取器包含的智能卡之间建立连接(使用特定资源管理器上下文)。如果指定的读卡器中不存在卡,则返回错误。
DLL库文件名:
WinSCard.dll
在DLL库中对应命令名:
SCardConnectA
参数名类 型传址数组备 注
hContext整数型输入类型;ScardEstablishContext()建立的资源管理器上下文的句柄。
szReader文本型,输入类型;包含智能卡的读卡器名称(读卡器名称由ScardListReaders()给出)
dwShareMode整数型,dwShareMode:输入类型;应用程序对智能卡的操作方式,SCARD_SHARE_SHARED(多个应用共享同一个智能卡)、SCARD_SHARE_EXCLUSIVE(应用独占智能卡)、SCARD_SHARE_DIRECT(应用将智能卡作为私有用途,直接操纵智能卡,不允许其它应用访问智能卡)。
dwPreferredProtocols整数型,dwPreferredProtocols:输入类型;连接使用的协议,SCARD_PROTOCOL_T0(使用T=0协议)、SCARD_PROTOCOL_T1(使用T=1协议)。可接受的连接协议的位掩码。可能的值可以与OR操作结合使用。
phCard整数型phCard:输出类型;与智能卡连接的句柄。
PdwActiveProtocol整数型PdwActiveProtocol:输出类型;实际使用的协议。


最佳答案

查看完整内容

其实怎么说呢?你只要了解要相关数据是何形试结构,万能的指针(易语言叫整数型,火山叫变整数)就完全可以解决传参的问题!!

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 资源分享区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 帖子申请荣誉值,获得 3点 荣誉值,荣誉值可兑换终身vip用户组哦。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (18/18)

签到天数: 24 天

发表于 2023-12-13 20:20:47 | 显示全部楼层   广东省惠州市
其实怎么说呢?你只要了解要相关数据是何形试结构,万能的指针(易语言叫整数型,火山叫变整数)就完全可以解决传参的问题!!
回复

使用道具 举报

结帖率:53% (9/17)
 楼主| 发表于 2023-12-13 20:23:30 | 显示全部楼层   吉林省延边朝鲜族自治州
这是4个函数 的易语言调用


  
子程序名返回值类型公开备 注
LJ_连接卡片整数型 LJ_连接卡片  成功返回卡片句柄 失败返回0
参数名类 型参考可空数组备 注
读卡器句柄整数型
读卡器名称文本型
变量名类 型静态数组备 注
SCARD_S_SUCCESS整数型连接状态
卡片句柄整数型卡片句柄
Protocol整数型 
SCARD_S_SUCCESS = SCardConnect (读卡器句柄, 读卡器名称, #SCARD_SHARE_SHARED, 十六进制 ( #SCARD_PROTOCOL_T1 ), 卡片句柄, Protocol)
如果真 (SCARD_S_SUCCESS = 0)
' 调试输出 (获取ID卡号 (卡片句柄))
返回 (卡片句柄)
返回 (0)
子程序名返回值类型公开备 注
LJ_获取读卡器名称文本型 LJ_获取读卡器名称 返回读卡器型号名称
参数名类 型参考可空数组备 注
句柄整数型
变量名类 型静态数组备 注
SCARD_S_SUCCESS整数型 
长度整数型 
SCARD_READERSTATE文本型 
SCARD_READERSTATE = API_取空白文本 (128)
长度 = 取文本长度 (SCARD_READERSTATE)
SCARD_S_SUCCESS = SCardListReaders (句柄, “”, SCARD_READERSTATE, 长度)
返回 (SCARD_READERSTATE)
子程序名返回值类型公开备 注
LJ_连接卡片整数型 LJ_连接卡片  成功返回卡片句柄 失败返回0
参数名类 型参考可空数组备 注
读卡器句柄整数型
读卡器名称文本型
变量名类 型静态数组备 注
SCARD_S_SUCCESS整数型连接状态
卡片句柄整数型卡片句柄
Protocol整数型 
SCARD_S_SUCCESS = SCardConnect (读卡器句柄, 读卡器名称, #SCARD_SHARE_SHARED, 十六进制 ( #SCARD_PROTOCOL_T1 ), 卡片句柄, Protocol)
如果真 (SCARD_S_SUCCESS = 0)
' 调试输出 (获取ID卡号 (卡片句柄))
返回 (卡片句柄)
返回 (0)
子程序名返回值类型公开备 注
_通用读取文本型 
参数名类 型参考可空数组备 注
指令文本型如 FFCA000000 读取卡号
返回字节长度整数型
变量名类 型静态数组备 注
RecvBuff字节集 
SendLen整数型 
RecvLen整数型 
ioRequestSCARD_IO_REQUEST 
SendBuff字节集 
返回字节长度 = 返回字节长度 + 4
SendLen = 取文本长度 (指令) ÷ 2
RecvLen = 返回字节长度 + 4
ioRequest.cbPciLength = 8
RecvBuff = 取空白字节集 (到整数 (返回字节长度 ÷ 2))  ' 可设置获取卡号的长度
SendBuff = 字节集_十六进制到字节集 (指令)  ' “FFCA000000”获取卡号指令
SCardTransmit (全_LJ_卡片句柄, ioRequest, SendBuff, SendLen, 0, RecvBuff, RecvLen)
返回 (字节集_字节集到十六进制 (RecvBuff))

回复

使用道具 举报

签到天数: 1 天

发表于 2023-12-13 21:12:53 | 显示全部楼层   广东省广州市

检查看看有没有带W结尾的api!没有你就只能命名为变整数,通过utf8到多字节后传指针~
回复

使用道具 举报

结帖率:53% (9/17)
 楼主| 发表于 2023-12-13 21:44:25 | 显示全部楼层   吉林省延边朝鲜族自治州
大司命 发表于 2023-12-13 21:12
检查看看有没有带W结尾的api!没有你就只能命名为变整数,通过utf8到多字节后传指针~ ...

刚刚接触火山 这个确实 不会操作
回复

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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