关于StrPCopy的问题。 ( 积分: 20 )

  • 主题发起人 主题发起人 soniczhuang
  • 开始时间 开始时间
S

soniczhuang

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下:
var
eMsg: array [0..1024] of char;
begin
StrPCopy(eMsg, eNode.Text);
application.messagebox(eMsg,'测试');
end;
以上代码没有任何问题。但我想把eMsg设为动态数组,代码如下:
var
eMsg: array of char;
begin
setLength(eMsg, Length(eNode.Text));
StrPCopy(@eMsg[0], eNode.Text);
application.messagebox(@eMsg[0],'测试');
end;
绐终得不到eNode.Text全部内容,请大家指正,应该如何写。
 
怎么没人回答啊?自己顶了~~~
 
怎么会呢?我试了可以的.你的eNode.Text里是什么内容啊?
 
如果 你eNode.Text数据长度大于255的话,那后面的就显示不了了。如果用静态的倒是可以显示全部的。
 
因为一个Char的长度为255, StrPCopy(@eMsg[0], eNode.Text); 中给索引为0的Char赋了值。所以才会有这种现象。
 
我刚才测试了一下
var
eMsg: array of PChar;
begin
setLength(eMsg, Length(eNode.Text));
StrPCopy(@eMsg[0], eNode.Text);
application.messagebox(@eMsg[0],'测试');
end;
倒是可以显示全部的,真是有点搞不清楚了
 
后退
顶部