我建了一个dll ,其中的一个函数中包含1000个字符以上的返回数据,返回类型为pchar,调用时它大概返回了1000左右的字符,请问各位大侠,如何才能获得完整的返回值!!!
解决方案 »
- 初学Delphi 请各位前辈帮忙解惑!
- (杭州地区)聘兼职程序员1-2名协助开发,项目已在开发中!
- 每天的某个时间运行一事件,一定要用TIMER吗?
- 定位窗口
- 向大家请教一个关于通过网络访问SQL服务器的问题?
- 执行"Application.messagebox(‘...’); exit;"后,怎么前一窗体也关闭了?
- 请教排序问题!
- 经常看到人家的菜单项(TPopupMenu)选中某一项后就可以在前面显示一个小对勾,请问是怎么实现的?
- 高分求助(完成后再加)小弟的毕业设计《实验室仪器管理系统》程序写完了,可程序好写,论文难编,哪位大哥有管理系统的开发文档,救我一
- 如何使用得到的Win32API Unit?
- 第三次关于DBLookupComboBox。解决500分相送.(在其它的贴子给400分)
- 这个过程该怎么写?
p:pchar;
getmem(p,2000);
申请空间时搞大点
当返回的时候才将返回字符转化为pchar型的
var
valback:string;
p:pchar;
begin
valback=valback+ 'dddddddddddddd.....';
valback=valback+'......';
getmem(p,2000);
p:=pchar(valback);
result:=p;
end;
但返回好像还是不完整,(有时完整,有时不完整,每次返回都不一样)
当返回的时候才将返回字符转化为pchar型的
var
valback:string;
p:pchar;
begin
valback:=valback+ 'dddddddddddddd.....';
valback:=valback+'......';
getmem(p,2000);
p:=pchar(valback);
result:=p;
end;
但返回好像还是不完整,(有时完整,有时不完整,每次返回都不一样)
var
p :PChar;
begin
p :=StrAlloc(1001);
p := 1000个字符;
ShowMessage(StrPas(p));
StrDispose(p);
end;
StrCopy(p,ValBack) ;
因为String是DELPHI的类型,在WIN 32 API中是没有的
所以要用Pchar类型
StrCopy(p,ValBack) ;
valback:=valback+'......';
如果valback正确 getmem(p,length(valback)+1);
strpcopy(p,valback);
如果 valback中有#0 则 显示就只有一部分了