delphi10和delphi2010区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi10和delphi2010区别相关的知识,希望对你有一定的参考价值。
如题
delphi10和delphi2010有区别吗?还是本来就是一样的!
delphi中move 和 strpcopy区别
lstr := 'come on!123';Move(lstr, Data, Length(lstr));StrPCopy(@data[0], 'come on!123');结果差别很大,求教
string保存具体字符的内存对用户其中存放连续的字符。是透明的, 由Delphi管理它的分配, 复制和释放, 用户不能干预(其实也可以, 不过是通过非法途径)。
Move(ABuffer^,P^, Sizeof(TArrayByte))。
Move(ABuffer^,P^, Sizeof(TArrayByte)); //复制内存块。 参考技术A var
lstr:PAnsiChar;
data:PAnsiChar;
begin
lstr := 'come on!123';
Move(lstr, Data, Length(lstr));
ShowMessage(data); lstr := 'come on!123';
GetMem(data,length(lstr));
StrPCopy(data,lstr);
ShowMessage(data);
end; 参考技术B 1)Move是复制byte,用Length来计算字符串的长度的时,有可能不准确。
在Delphi 2010 的情况下,Length('中国'),长度为2,但是其实是4个Byte,复制就会丢失。
例如:
var
lstr: AnsiString;
PStr: array [0 .. 20] of AnsiChar;
begin
lstr := 'come,1234';
Move(lstr[1], PStr, Length(lstr));
ShowMessage(PStr);
end;
2)StrPCopy是复制一个AnsiString 或 WideString到PAnsiChar 或 PWideChar,不会做长度检查.
var
Data: PAnsiChar; //这是一个指针
begin
GetMem(Data,20);
StrPCopy(Data, 'come on!123');
ShowMessage(Data);
FreeMem(Data);
//也可以这样
Data:=PAnsiChar('come on!123');
end;
以上是关于delphi10和delphi2010区别的主要内容,如果未能解决你的问题,请参考以下文章
radstudio delphi/c++ builder berlin 10.1 update2怎么进行调试
使用 indy 10.5.8 在 Delphi 2010 中设置 KeepAlive 超时
Delphi 7:在 Win XP 或 Windows Server 2003 下编译有啥区别?