A
awfigsk
Unregistered / Unconfirmed
GUEST, unregistred user!
func function ShortStringAsPChar(var S:ShortString)Char;
{这函数能使一个字符串以null结尾,这样就能传递给需要PChar类型参数的Win32 API函数,如果字符串超过
254个字符,多出的部分将被截掉}
begin
if Length(S)=High(S) then Dec(S[0])
{ 如果S太长,就截取一部分}
S[Ord(Length(S))+1]:=#0
{ 把null加到字符串的最后}
Result:=@S[1]
{ 返回PChar化的字符串}
end;
我想请问:在函数部分s[ord(length(s))+1]:=#0;这条语句中为什么不直接用length(s)
返回字符串s的长度,而在外面还要加上ord()函数?这有什么区别吗?
{这函数能使一个字符串以null结尾,这样就能传递给需要PChar类型参数的Win32 API函数,如果字符串超过
254个字符,多出的部分将被截掉}
begin
if Length(S)=High(S) then Dec(S[0])
{ 如果S太长,就截取一部分}
S[Ord(Length(S))+1]:=#0
{ 把null加到字符串的最后}
Result:=@S[1]
{ 返回PChar化的字符串}
end;
我想请问:在函数部分s[ord(length(s))+1]:=#0;这条语句中为什么不直接用length(s)
返回字符串s的长度,而在外面还要加上ord()函数?这有什么区别吗?