c - 如何使用 Oscar Anderson 的 ISO8583 库获取消息长度?

标签 c iso8583

如何使用 Oscar Anderson 的 C 库获取 isomsg 的长度 假设我有这个:

enter code here

DL_ISO8583_HANDLER isoHandler;
DL_ISO8583_MSG     isoMsg;
DL_UINT8           buf[MAX_DATASIZ];
DL_UINT16          bufSize;

DL_ISO8583_DEFS_1987_GetHandler(&isoHandler);

/* initialise ISO message */
DL_ISO8583_MSG_Init(NULL,0,&isoMsg);


(void)DL_ISO8583_MSG_SetField_Str(0,"0320",&isoMsg);
(void)DL_ISO8583_MSG_SetField_Str(2,"4401410145200145",&isoMsg); 
(void)DL_ISO8583_MSG_SetField_Str(3,"310000",&isoMsg);
(void)DL_ISO8583_MSG_SetField_Str(4,"000000001045",&isoMsg);
(void)DL_ISO8583_MSG_SetField_Str(11,"000015",&isoMsg);

(void)DL_ISO8583_MSG_Pack(&isoHandler,&isoMsg,&buf[7],&bufSize);

如何获取我的 isoMsg 长度?

最佳答案

从我这里看到的是DL_ISO8583_MSG的定义:

struct DL_ISO8583_MSG_S
{
    /* static memory details */
    DL_UINT8 *sPtrNext; /* next static point - NULL if dynamic mode  */
    DL_UINT8 *sPtrEnd;  /* end of the static buffer (if static mode) */

    /* NB bitmap is not stored, it is implied if the field is set */

    /* fields */
DL_ISO8583_MSG_FIELD field[1+kDL_ISO8583_MAX_FIELD_IDX];
};
typedef struct DL_ISO8583_MSG_S DL_ISO8583_MSG;

只需解析DL_UINT8 指针并将计数存储到变量中即可。

关于c - 如何使用 Oscar Anderson 的 ISO8583 库获取消息长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44760374/

相关文章:

c++ - 在 C++ 应用程序中链接到 C 库

java - 线程阻塞问题?

c# - POS机与银行之间的支付

c - 字符串中的大写字符无法转换为小写字符,并且减去它们的 ASCII 值不会使它们出现在字母索引中

c - 如果没有明显使用,是否允许编译器删除对结构成员的赋值?

c - 为什么在 char** 转换后会出现段错误?

c# - WCF - 如何在 ISO8583 中序列化和反序列化?

java - 如何解析十六进制 iso8583 行?

c - Lua C API : undefined reference errors in liblua.a