PChar 指向一个字符串,用PChar 在很多场合可以当作String用的,而char是一个字符,PChar^ 可以引用PChar 所指的第一个字符。
解决方案 »
- 我正在做一个ACTIVEX控件,怎么让它在设计时和timer那种效果一样
- DBGRID字段太多,导致无法一目了然,有什么好办法解决吗?
- ADOQuery得到的是中文是乱码
- Delphi新手 简单问题
- 请问各位大侠:把数据库放入Excel时, 保存为指定的文件名的语句是怎样写的?
- 用adoconnect做SQL SERVER开发,如何实现事务嵌套?
- 请问DELPHI1.0什么地方有下载的.是不是必须安装WIN3.1才能运行?
- 请各位帮帮忙!!!!
- MIS高手请进,请教有关用户权限的问题.
- 请问,用DELPHI怎么确定当前APP所在的路径?
- 小菜鸟问题又来了!在用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’