标题:求助各位大佬,调用DLL的一段代码,实在弄不明白了,请大佬们赐教
只看楼主
qwdn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-11-17
结帖率:100%
已结贴  问题点数:20 回复次数:3 
求助各位大佬,调用DLL的一段代码,实在弄不明白了,请大佬们赐教
DLL的定义是这样的:
函数声明: long ICC_Reader_PowerOn (long ReaderHandle,unsigned char
ICC_Slot_No,unsigned char* Response)
参数说明:
ReaderHandle: 设备句柄;
ICC_Slot_No: ICC 连接器号, 0x01--ICC主卡座,0x11--SAM1
卡,0x12--SAM2 卡 ,0x13--SAM3卡,0x14--SAM4 卡;
Response: 指向存放响应数据的存储区的指针。
——————————————————————————
我写的代码是这样的(没严格写,参考了吹水大佬的写法哈):
DECLARE long ICC_Reader_Open IN F4_MDS.dll string
aaa=icc_reader_open("AUTO")
DECLARE long ICC_Reader_PowerOn IN F4_MDS.dll long ,string ,string@
bb="0x01"
cc=REPLICATE(0h00,200)
ddd=ICC_Reader_PowerOn(aaa,bb,@cc)

然后就ddd值是-14,错误是:F_ParameterError,(动态库)命令参数错误
我将bb改为0h01,也是不行,怎么弄都不成了,请大佬们指教哈!
DLL.zip (107.2 KB)


[此贴子已经被作者于2020-11-17 21:24编辑过]

搜索更多相关主题的帖子: 调用 DLL string 代码 long 
2020-11-17 21:01
qwdn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-11-17
得分:0 
回复 楼主 qwdn
改成这样,能跑过去了,但不知道对不对。
DECLARE long ICC_Reader_PowerOn IN F4_MDS.dll long ,long ,string@
bb=0x01
cc=REPLICATE(0h00,200)
ddd=ICC_Reader_PowerOn(aaa,bb,@cc)

[此贴子已经被作者于2020-11-17 22:01编辑过]

2020-11-17 21:43
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:20 
以下是引用qwdn在2020-11-17 21:43:10的发言:

改成这样,能跑过去了,但不知道对不对。
DECLARE long ICC_Reader_PowerOn IN F4_MDS.dll long ,long ,string@
bb=0x01
cc=REPLICATE(0h00,200)
ddd=ICC_Reader_PowerOn(aaa,bb,@cc)

应该对的
unsigned char 是无符号BYTE,数值在 0x00 -- 0xFF
VFP的 DECLARE 命令中参数的数值类型有INTEGER和LONG
2020-11-17 22:33
qwdn
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2020-11-17
得分:0 
回复 3楼 吹水佬
多谢大佬指点!
2020-11-17 22:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-503921-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019444 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved