lstrcpyA 函式 (winbase.h)
將字串複製到緩衝區。
語法
LPSTR lstrcpyA(
[out] LPSTR lpString1,
[in] LPCSTR lpString2
);
參數
[out] lpString1
類型: LPTSTR
要接收 lpString2 參數所指向之字串內容的緩衝區。 緩衝區必須夠大,才能包含字串,包括終止的 Null 字元。
[in] lpString2
類型: LPTSTR
要複製的 Null 終止字串。
傳回值
類型: LPTSTR
如果函式成功,則傳回值是緩衝區的指標。
如果函式失敗,則傳回值為 Null ,且 lpString1 可能不會以 Null 終止。
備註
使用雙位元組字元集 (DBCS) 版本的系統,此函式可用來複製 DBCS 字串。
如果來源和目的地緩衝區重迭, lstrcpy 函式會有未定義的行為。
安全性備註
使用此函式不正確可能會危害應用程式的安全性。 此函式會使用結構化例外狀況處理 (SEH) 來攔截存取違規和其他錯誤。 當此函式攔截 SEH 錯誤時,它會傳回 Null ,而不會終止字串,而不會通知呼叫端錯誤。 呼叫端無法安全地假設空間不足是錯誤狀況。lpString1 必須夠大,才能保存 lpString2 和結尾 '\0',否則可能會發生緩衝區滿溢。
緩衝區溢位情況是應用程式中許多安全性問題的原因,而且在發生存取違規時,可能會對應用程式造成拒絕服務攻擊。 在最糟的情況下,緩衝區滿溢可能會讓攻擊者將可執行檔程式碼插入您的進程,特別是當 lpString1 是堆疊式緩衝區時。
請考慮改用 StringCchCopy ; StringCchCopy(buffer, sizeof(buffer)/sizeof(buffer[0]), src);
使用 ,請注意 buffer
不得為指標或使用 StringCchCopy(buffer, ARRAYSIZE(buffer), src);
,請注意,當複製到指標時,呼叫端會負責傳入字元中指向記憶體的大小。
注意
winbase.h 標頭會將 lstrcpy 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |
另請參閱
概念
參考