複製鏈接
請複製以下鏈接發送給好友

lstrcpyn

鎖定
lstrcpyn該函數把第二個參數指定的字符串複製到第一個參數指定的字符串,第三個參數指定複製的長度
外文名
lstrcpyn
參數個數
3個
要    求
緩衝區指向夠大以包含結束符
作    用
第三個參數指定複製的長度

lstrcpyn函數語法

LPTSTR lstrcpyn( __out LPTSTR lpString1, __in LPCTSTR lpString2, __in int iMaxLength);

lstrcpyn參數

lpString1 :指向一個緩衝區,以存儲第二參數的內容。需足夠長以容納第三參數設定的TCHAR值,以及NULL結束符“\0”;
lpString2 :指向以NULL結尾"\0"的字符串;
iMaxLength :指定從第二參數複製至第一參數內容的大小,包括NULL結束符"\0"(謹記bytes字節數對應ANSI 版本以及WCHAR值對應Unicode版本)。

lstrcpyn返回值

該函數返回指向緩衝區的指針(即使源字符串長於第三參數所指定長度,函數succeed)。
如果失敗,返回NULL,lpString1不以空字符串"\0"結束。

lstrcpyn注意

lstrcpyn安全警告

第一參數如果過小,會導致緩存溢出;如果是Unicode版本,sizeof()返回的是字節數,而不是WCHAR,這就會導致緩存區溢出;緩存溢出可能導致嚴重問題。考慮使用 sizeof(szString1)/sizeof(szString1[0])得到適當的大小。
(可以考慮使用 StringCchCopy 函數代替)

lstrcpyn備註

緩衝區指向必須足夠大以包含結束符;實例:
TCHAR chBuffer[512]; lstrcpyn(chBuffer, "abcdefghijklmnop", 4);
此例結果為“abc”以及一個空結束符被複制至chBuffer。
(第一次對照MSDN Help翻譯,難免有錯,請多包涵指正,謝謝)