将bytearray转换为字符串



我是C 的初学者,并尝试从读卡器中获取输出:为此,我使用DLL。我的问题是我的响应返回了旁观,我想将其转换为普通字符串。因此,我目前的实际代码是:

res = CT_data(ctn, &dad, &sad, 5, command, &lenr, response);
printf("nThe Response: %s", response);

这将打印到我的控制台:

The Response: ò

但是在文档中说,如果与设备的连接起作用,则应返回95009000

所以我认为我必须改变response!我怎样才能做到这一点?谢谢。

来自文档:

nSuccess = CT_data(CT_data(ctn,dad,sad,lenc,commando,lenr,response)

ctn:整数,16位,未签名(Interne terminalnummer aus ct_init)
爸爸:整数,8位,未签名(目标 - 地址)
悲伤:整数,8位,未签名(源 - 地址)
Lenc:整数16位,未签名(längedes突击队)
突击队:BYTE-ARRAY,(KOMMANDO)
LENR:整数16位,未签名(LängeDer响应)
响应:字节阵列(Antwort)
nsuccess:整数,8位,签名(0 = erfolgreich,-1 = fehlerhaft)

nSuccess = CT_data(ctn,dad,sad,lenc,command[],lenr,response[])  

wenn nsuccess = 0,dann响应[]prüfen。WENN响应= 9000 ODER 9500 WAR DAS CT_RESET ERFOLGREICH。alsnächstesdann die kartenanfordorung

typedef CHAR (WINAPI *CT_DATA) (USHORT, UCHAR*, UCHAR*, USHORT, UCHAR*, USHORT*, UCHAR*);

文档中提到的响应是否可以在十六进制中为2个字节?然后响应长度,即CT_DATA()调用的返回值,应为2;依据数组的第一个字节应为0x90或0x95,即144或149,而第二个字节应始终为0。不确定您的代码页面中的字节呈渲染器是什么。

最新更新