PB 调用动态dll

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 进行传参?

 

请问这个问题解决了吗