求教-PB中调用外部函数中的结构体参数问题(急急急,请高手赐教)
在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程序已经写好了,不能够在修改,只能修改动态库,请问各位大侠,就是不修改结构体的顺序,有什么办法解决吗?