也就不可以直接返回字符串了?
解决方案 »
- 想删掉 MEMO 控件里面的所有空格字符,不知道怎么写代码
- 求delphi7的参考资料
- 怎么建立动态的数据库
- 有没有熟悉内嵌汇编的(delphi中)
- 怎么在拖动DBGrid中数据时激发拖动事件?
- 为什么在Tidtcpserver中将Actvie置成了False,客户端并未断开??(小女子初入门,多多指教啊:)
- DLL中是否建重载函数?
- pdf是什么文件格式?
- 请叫一个maskedit的editmask属性的问题初学者希望高手来回答我的问题,谢谢,我在线等待
- 很失望:今天到书市逛了半天,想找一下关于条形码方面的资料,进出的书店不少于四,五十家,毫无收获.到是"淀海考王"之类的书满大街都是.
- 请问一下如何定义array property
- 用来实现这类数据图显示的控件用啥好?
function a:pchar;
begin
result:=pchar('dfsfds');
end;这个有什么问题呢?
function A:PChar;
begin
StrPcopy(Result,'dfsfds');
end;
通过参数返回 大多数winapi都是这么做的。
如果
edit.text是 你好一
result:=pchar(edit.text);那么经过顺序调用后(或者再转换为string)
显示基本按下面的顺序显示
你好 (调试信息为 '你好'#0)
你好一(调试信息为 '你好一')
你好 (调试信息为 '你好'#0)
你好一(调试信息为 '你好一')
如果想保证它的内容不变化,有两个比较简单的办法,一个是给PChar申请一块空间,把string内容复制进来。另外一种是手动把string的引用计数改为-1,这样rtl会认为它是个常量而不会试图去释放它。由于后者会涉及复杂的手动管理,加上WideString没有引用计数,所以我不推荐后者,也就不说怎么改它的引用计数了。
你用PChar出错了,并不代表PChar不能做返回值类型。