0

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

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

这将打印到我的控制台:

The Response: ò

但是在文档中它说如果与设备的连接正常,它应该返回9500或者9000

所以我觉得我要转型了response!我怎样才能做到这一点?谢谢。

从文档中:

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

ctn:整数,16 位,无符号(interne Terminalnummer aus CT_INIT)
dad:整数,8 位,无符号(目标地址)
sad:整数,8 位,无符号(源地址)
lenc:整数 16 位,无符号(Länge des Commandos )
commando: Byte-Array , (Kommando)
lenr: Integer 16 Bit, Unsigned (Länge der Response)
response: Byte-Array (Antwort) nSuccess
: Integer, 8 Bit, Signed ( 0 = Erfolgreich, -1 = Fehlerhaft)

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

Wenn nSuccess = 0, dann response[] prüfen。Wenn 响应 = 9000 或 9500 战争 das CT_Reset erfolgreich。其他人知道 Kartenanforderung

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

1 回答 1

1

文档中提到的响应可以是 2 个十六进制字节吗?那么响应长度,即CT_data()调用的返回值,应该是2;并且响应数组的第一个字节应为 0x90 或 0x95,即 144 或 149,而第二个字节应始终为 0。不确定在您的代码页中呈现 ò 的字节是什么。

于 2014-03-12T22:18:33.340 回答