当前位置: 代码迷 >> PB >> dephi写的dll,pb怎么调用
  详细解决方案

dephi写的dll,pb怎么调用

热度:62   发布时间:2016-04-29 06:44:03.0
dephi写的dll,pb如何调用
 function Get_packet(CBCbh: string; port, baud: integer; p: pchar): integer; stdcall; external 'SRWDll.dll';
上面接口p其实是一个输出的内容。。但是p内容有可能很长;
在dephi中调用是下面的写法
p := AllocMem(1048576); //分配内存
i := Get_packet('013', 2, 57600, p);


pb中:写法如下
string p
int i
p=space(5000)
i = Get_packet2('013',2,57600,ref p)

如果p内容较短没有问题,但是较长的情况下报错。。。或者我不定义p=space(),也要报错。。

把p=space(1048576)还是要报错。。


请问高手,我要怎样定义?

------解决方案--------------------
p=space(1048576)

如果报错,建议在delphi把内容写到一个文件里,然后在pb中读取,这种方式比较好


------解决方案--------------------
如果dll不是自己写的,可以再用dephi封装一下,然后再用pb读取