送分100分:为何一个从DLL中返回的字符串在MEMO中不能正常显示 本帖最后由 zaoshuwa 于 2010-08-23 22:18:11 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在MEMO中要用:Memo1.Lines.Clear;Memo1.Lines.Add(outstr); 你在memo.text赋值后面再加一句ShowMessage看看,问题可能不是出在字符串赋值上从图上看你的程序涉及到调用外部DLL或COM函数,可能是这里面有内存管理问题 PS:由于腾讯不允许外链,图片无法直接看到,需要在新窗口中打开链接(此链接不支持FF浏览器) 去一下字符串的空格再分别Showmessage 和MEMO1.TEXT:=outstr,看看还是不是一样有问题 这个问题我不久前也遇到过.你把MENO里先clear一下,然后在添加进去.图看不到,不知道啥错误提示. please try............Memo1.Lines.Clear;Memo1.Lines.Add(outstr);............. Memo1.Lines.Clear;Memo1.Lines.Add(outstr);还有在Dll中,不要用string类型作为形参,或返回,这样内存容易出问题,尽量用PChar,如果dll是给其他编译器用的,如C++,c#,一定要用PChar类型。 “从一个DLL中返回一个字符串变量outstr,内容为:'8888 55555 55555 03 222 0 50 20 3200 0 0 0 0 40 11 '用SHOWMESSAGE(outstr) 可正常显示其内容,但MEMO1.TEXT:=outstr;” 帖下代码。开发工具确定是DELPHI吗。 当然是D了。呵呵。这样,outstr[0] := 30;EMO1.TEXT:=outstr;试试,看看输出内容。因为字符串“abc”,delphi时的内存是:{3,'a','b',c'}, 而c是{'a','b','c',0} dll中 返回 string 型 要给 string 指定长度 因为string 长度是动态的 有默认长度,你不指定长度,那么返回的字符串 的长度为默认长度 如果你返回的字符串长度 超过了默认长度,那就显示不出来。 这个dll 什么语言写的,outstr 的类型是什么?memo 一般情况要用add 求delphi三方控件 请教:用delphi作word开发的问题 Integer变量,送十分祝大家十分开心 关于在程序中使用不同的打印机打印Pdf文档。 请问如何在DrawGrid的方格里贴上不同的图片。急。 〓〓1〓老生常谈〓1〓〓如何区分对象和类型? 怎么计算combobox的行数? 哪里下载d5adoupdate2.exe? 在C/S三层结构中,使用paradox做数据库,如何锁定客户端修改、或增加数据? 如何获得输入点? RegularExpressions1.0 PATH路径设置问题 关于Email编码的问题
Memo1.Lines.Clear;
Memo1.Lines.Add(outstr);
从图上看你的程序涉及到调用外部DLL或COM函数,可能是这里面有内存管理问题
Memo1.Lines.Add(outstr);
.............
Memo1.Lines.Clear;
Memo1.Lines.Add(outstr);
还有在Dll中,不要用string类型作为形参,或返回,这样内存容易出问题,尽量用PChar,
如果dll是给其他编译器用的,如C++,c#,一定要用PChar类型。
帖下代码。开发工具确定是DELPHI吗。
这样,outstr[0] := 30;
EMO1.TEXT:=outstr;试试,看看输出内容。因为字符串“abc”,delphi时的内存是:{3,'a','b',c'}, 而c是{'a','b','c',0}
memo 一般情况要用add