求教-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程序已经写好了,不能够在修改,只能修改动态库,请问各位大侠,就是不修改结构体的顺序,有什么办法解决吗?
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程序已经写好了,不能够在修改,只能修改动态库,请问各位大侠,就是不修改结构体的顺序,有什么办法解决吗?
...全文
相关推荐
PB调用http api接口 PB解析json
PB调用http api接口,PB解析json到数据源,get和post都有案列,PB解析json,可解析树立菜单,也完美可解析后将结果存到数据源
pb调用外部函数进行字符集转换.zip
pb调用外部函数进行字符集转换. // UTF-8转成GB2312 // GB2312转成UTF-8 // CP936转成UTF-8 // UTF-8转成CP936
PB6,PB7,PB8,PB9,PB10,PB11调用WEBSERVICE,并解决超时问题
我们项目中的一个样例,用PB调用我们项目组的AXIS2写的WEBSERVICE。运行需要微软MSSOAP30,由于解决超时费了我很多时间,希望解决朋友们的问题。
基于C#调用c++Dll结构体数组指针的问题详解
下面小编就为大家分享一篇基于C#调用c++Dll结构体数组指针的问题详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
pb调用摄像头
用pb编程控制USB摄像头,可以截取bmp图像


API 调用
