lisanjun520 2021-06-22 17:39 采纳率: 0%
浏览 86

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

 

  • 写回答

1条回答 默认 最新

  • s625038660 2022-12-27 16:03
    关注

    请问这个问题解决了吗

    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?