PChar 指向一个字符串,用PChar 在很多场合可以当作String用的,而char是一个字符,PChar^ 可以引用PChar 所指的第一个字符。
解决方案 »
- 执行储存过程中出现运行的错误,前台如何运用事务进行回滚??
- 菜鸟提问:问题简单先来先得:如何用delphi实现点击最小化时图标时,界面象QQ一样,再点击应用图标时还原
- Query,怎样控制显示字段的宽度?
- frame封装进DLL后有很多问题, 比如resize, 谁有这方面的东东, 请帮兄弟一把! 谢谢
- MSN在XP中无法登录,什么原因?
- 散分
- 可以定义TStringGrid中每一格得输入长度吗?
- 帮忙介绍一些制作vcl组件的资料,
- 求求各位了!来看看这个简单的问题吧!
- 很急!高手指点一下多线程的问题...
- 小菜鸟问题又来了!在用SQL查询时如何判断数据库是否为空?还有如何用Sql实现数据的修改(用的是动态查询呦)只能送25分了!!!
- session的onlogin可以去掉它的login窗口吗?
PChar= ^ Array[0..0] of char;
GetWindowText(Handle,s,100);
ShowMessage(s);
freemem(s);Try it!! It is right!!
Getmem(s,<length>)
s:=PChar('Hello'); <<< add
GetWindowText(Handle,s,100);
ShowMessage(s);
freemem(s);
在delphi里:pchar('Hello'),相当于一个常量,具有不可更改性;
s:= pchar('Hello');
d:=pchar(''); showmessage(IntTostr(Integer(s)));
showmessage(IntTostr(Integer(d))); 两个值(即地址)是一样的。var s:PChar;
begin
s:=PChar('Hello');
GetWindowText(Handle,s,100); //你给一个相当于常量赋值,实效,s的地址不变。
ShowMessage(s);
end;
显示的s却是'Hello',Why?var s:PChar;
begin
GetWindowText(Handle,s,100);//因为s没有初石化,此时delphi自动分配了内存空间,有效
ShowMessage(s);
end;
上面错了
上面错了
这是delphi对字符串操作的一个封装, 在delphi里:pchar('Hello'),相当于一个常量,具有不可更改性;
s:= pchar('Hello');
d:= pchar('Hello');
~~~~~~~~
showmessage(IntTostr(Integer(s)));
showmessage(IntTostr(Integer(d))); 两个值(即地址)是一样的。var s:PChar;
begin
s:=PChar('Hello');
GetWindowText(Handle,s,100); //你给一个相当于常量赋值,实效,s的地址不变。
ShowMessage(s);
end;
显示的s却是'Hello',Why?var s:PChar;
begin
GetWindowText(Handle,s,100);//因为s没有初石化,此时delphi自动分配了内存空间,有效
ShowMessage(s);
end;
var s:PChar;
begin
s:=PChar('Hello');
s:=PChar('aaaaa');
ShowMessage(s); -->显示为aaaaa,按你的说法,s应该是Hello呀?请再指教!
'aaaaa'是系统编译是生成的固定不变的。 s:=PChar('Hello'); s:=PChar('aaaaa');只是 s从'Hello'的地址指到了‘aaaaa’