求教-PB中调用外部函数中的结构体参数问题(急急急,请高手赐教)

deng214 deng214 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在VS 2010里面定义了一个动态库结构。
typedef struct _CardInfo {
char serial[16+1];
char kind[2+1];
char kind_desc[32];
int alive;
char issuer[17];
int version;
char network[5];
char release_date[8+1];
char expired_date[8+1]; //到期日期, 年月日YYYYMMDD
char plate[13+1];
char plate_color[2+1];
char user_type[2+1];
int balance;
char balance_hex[8+1];
char on_line_hex[4+1];
char off_line_hex[4+1];
int on_line;
int off_line;
} CardInfo;
已经定义查询卡片的函数,pb里面也是按照这个结构体的写好了。

short _stdcall ReadCard(CardInfo *reply)
{
}
但是不知道为什么读出来的信息都是错位。
在pb里面调用 ret= ReadCard(CardInfo *reply)
出来的结构出现错位。


但是只要把结构体,改为整型在前面,就可以。
typedef struct _CardInfo {
int isGB;
int alive;
int balance;
int on_line;
int off_line;
char serial[16+1];
char kind[2+1];
char kind_desc[32];
char issuer[17];
char network[5];
char release_date[8+1]; //启用日期, 年月日YYYYMMDD
char expired_date[8+1]; //到期日期, 年月日YYYYMMDD
char plate[13+1];
char plate_color[2+1];
char user_type[2+1];
char balance_hex[8+1];
char on_line_hex[4+1];
char off_line_hex[4+1];
} CardInfo;

但是我们的PB程序已经写好了,不能够在修改,只能修改动态库,请问各位大侠,就是不修改结构体的顺序,有什么办法解决吗?
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
deng214
API 调用 681 成员 4,761 内容