lstrcpyn 允許指定最大複製字符數(含結束符),防止緩衝區溢出。第三個參數為負數時複製整個源串。
procedure TForm1.Button1Click(Sender: TObject);
var p: PChar; buf: array[0..255] of Char;
begin
p := 'Delphi';
lstrcpyn(buf, p, 3 + 1); {複製前 3 字符 + 結束符}
ShowMessage(buf); {Del}
lstrcpyn(buf, p, -1); {負數:複製整個串}
ShowMessage(buf); {Delphi}
end;
參數說明: lstrcpyn(dest, src, maxLen),maxLen 包含結束符 #0。若源串長度 ≥ maxLen,目標串會被截斷並強制添加結束符,保證安全。