小编mar*_*isa的帖子

Python ctypes - 接受结构崩溃的dll函数

我必须访问ms windows xp下的POS终端.我正在使用python 2.7.我负载的DLL中的关键功能是支付接受两个结构指针,但它崩溃返回1(通信错误)但没有进一步的消息.请注意,调用支付函数时,并非POSData结构的所有元素都会收到值.我尝试的其他功能(GetVersion)确实有效.这里的规格和我的代码:

typedef struct
{
  char IPAddress[16]; //xxx.xxx.xxx.xxx
  int Port;
} TETHParameters;   
typedef struct
{
  char TerminalId[8+1];
  char AcquirerId[11+1];
  char TransactionType[3+1];
  char TransactionResult[2+1];
  char KODescription[24+1];
  char CardType[1+1];
  char STAN[6+1];
  char PAN[19+1];
  char AuthorizationCode[6+1];
  char OperationNumber[6+1];
  char DataTrs[7+1];
} TPOSData;

typedef struct
{
  char Amount[8+1];
  char ECRId[8+1];
  char PaymentType[1+1];
  char TerminalId[8+1];
} TECRData;

__declspec(dllexport) void IAE17_GetVersion(char *Version);
__declspec(dllexport) void IAE17_InitEth(TETHParameters *ETHParameters);

__declspec(dllexport) void IAE17_Free(void);

__declspec(dllexport) int IAE17_Payment(TECRData *ECRData, TPOSData *POSData);
Run Code Online (Sandbox Code Playgroud)
from ctypes import *
#da python 3.x sara' configparser …
Run Code Online (Sandbox Code Playgroud)

python ctypes pointers structure

4
推荐指数
1
解决办法
1856
查看次数

标签 统计

ctypes ×1

pointers ×1

python ×1

structure ×1