在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
今天,对接第三方dll的时候出现如下问题: 接口声明如下: long BL_tradeBalance (char *MerchantNumber,char *PosId,char *OperatorNumber, int TypeCode,int PrintMode, char *ResponseBuf,char *retCode,char *retMsg) 输入参数: char mMerchantNumber[6] //商户号(门店号) char mPosId[3] //pos机号(终端号) char mOperatorNumber[20]; //操作员号 int TypeCode; //业态标识 1 int PrintMode; //打印模式 1 输出参数: char ResponseBuf[2048] //f返回当日对账明细 char retCode [20] //返回码 char retMsg [256] //返回信息 ---------------------------------------------------------------------------------------- delphi端调用 var resBuf,retCode,retMsg: PChar; 调用: dev.BL_tradeBalance(Pchar(sStoreNo),PChar(FPosNo),PChar(FEmpCode),1,1,resBuf,retCode,retMsg) 报dll异常 此时需要我们给返回的指针主动分配内存 resBuf := StrAlloc(2048); 如果不是对接方主动说明,一般需要我们主动给返回值分配内存,然后做好释放工作 -------------------------------------------------------------------------------- resBuf := StrAlloc(2048); .... finally StrDispose(resBuf); end; -------------------------------------------------------------------------------- 扩展了解下字符指针内存分配函数
GetMem AllocMem ReallocMem FreeMem GetMemory ReallocMemory FreeMemory New Dispose NewStr DisposeStr StrNew StrAlloc StrDispose var p: PChar; begin p := StrAlloc(256); GetWindowText(Handle, p, StrBufSize(p)); ShowMessage(p); {Form1} StrDispose(p); end;
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论