0

我必须与 PinPad 设备集成。

PinPad 的 DLL 有一个在 Param 中接收字符串的方法。以下代码与真实代码类似。

这是de JavaCode:

  Memory memMsgAfter = new Memory(32);
  memMsgAfter.setString(0, toHexString("0000000000000000".getBytes()));
  PinpadGertecInterface.instance.PPC_StartPINEntry_DiffWK(0, 1, 3, memMsgAfter,/* other params ommited*/)

这是 C 中方法的分配:

PPC_FUNCTION PPC_StartPINEntry (BYTE bMode, BYTE bIndex, BYTE bKey-
Opt, BYTE *sEncWK, /* other params */);

制造商的文件是这样说的:

bKeyOpt BYTE [IN]:
键控选项。查看正确使用的备注。

sEncWK 字节 * [输入]

加密的工作密钥。长度取决于 bKeyOpt(总是 HEX 字符串)。bKeyOpt = 1 => sEncWK 长度必须为 48。bKeyOpt = 2 => sEncWK 长度必须为 32。bKeyOpt = 3 => sEncWK 长度必须为 16。

问题是它执行并返回 ACCESS VIOLATION

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0114c48e, pid=5284, tid=4856
4

0 回答 0