1.调用dll函数 参数是char* 类型,需要符合结构体规范传参
card_trans(int com,char * pUpdata,char * pDownData);
传入首地址必须符合结构体pUpdata,传出首地址必须符合结构体pDownData.
结构体pUpdata和pDownData的定义分别如下:
typedef struct {
char OperateType [OperateTypeLength]; //操作类型
char TransType [TransTypeLength]; //交易类型
char CardType [CardTypeLength]; //卡类型
char CashRegNo [CashRegNoLength]; //收银机编号
char CasherNo [CasherNoLength]; //操作员
char Amount [AmountLength]; //金额
char CashTraceNo [CashTraceNoLength]; //收银流水号
char OriginTrace [CashTraceNoLength]; //原交易流水号
char Reserved[48]; //预留字段
}strTransUp;
根据类型表 C语言 char* 对应的 pb ref string
于是pb 中声明函数 如下:
subroutine card_trans(ref Long com, ref string pUpdata, ref string pDownData) LIBRARY "LibSand.dll" ALIAS FOR "card_trans;ansi";
如何把PB 里面定义的结构体转换成 string 进行传参?