Windows APIメモ lstrcpyn lstrcpynW
Windows APIのメモ。
lstrcpyn lstrcpynW。
function lstrcpyn(lpString1, lpString2: PChar; iMaxLength: Integer): PChar; stdcall;
function lstrcpynW(lpString1, lpString2: PWideChar; iMaxLength: Integer): PWideChar;
stdcall;
iMaxLengthはプラットフォーム SDKによると
iMaxLength
lpString2 パラメータが指す文字列から、lpString1 パラメータが指すバッファへコピーするべき文字の数を
TCHAR 単位で指定します。終端の NULL 文字分も含めてください。
となっています。
終端のNULL文字も含めてとなっているので、
lstrcpyn(lp_Buff, PAnsiChar(ls_Str), Length(ls_Str) +1);
のようにコピーする文字数 +1(終端のNULL分)としなければなりません。
単純に、
lstrcpyn(lp_Buff, PAnsiChar(ls_Str), Length(ls_Str));
のようにしてしまうと最後の一文字が欠けます。