共用方式為


SHUnicodeToAnsi 函數 (shlwapi.h)

[此功能可透過 Windows XP 和 Windows Server 2003 使用。 它可能會在後續版本的 Windows 中被更改或無法使用。

將字串從 Unicode 字碼頁轉換為 ANSI 字碼頁。

語法

int SHUnicodeToAnsi(
  [in]  PCWSTR pwszSrc,
  [out] PSTR   pszDst,
        int    cchBuf
);

參數

[in] pwszSrc

類型: PCWSTR

要轉換成 ANSI 之 Null 結尾 Unicode 字串的指標。

[out] pszDst

類型: PSTR

緩衝區的指標,當此函式成功傳回時,會接收轉換的字元。 緩衝區必須足夠大,才能包含 cchBuf 參數所指定的 CHAR 字元數目,包括終止空值字元的空間。

cchBuf

類型: int

pszDst 所指向的緩衝區可以包含的 CHAR 值數目。 指派給參數的值必須大於零。

返回值

類型: int

傳回寫入輸出緩衝區的 CHAR 值數目,包括終止 Null 字元。 如果不成功,則傳回 0。

備註

安全警告: 不正確地使用此功能可能會危及應用程式的安全性。 例如,如果 pszDst 緩衝區不夠大,無法包含 cchBuf 所指定的字元數目,則可能會發生緩衝區滿溢。 如果發生存取違規,緩衝區滿溢可能會導致對應用程式進行阻斷服務攻擊。 在最壞的情況下,緩衝區滿溢可能會讓攻擊者將可執行程式代碼插入您的進程,特別是當 pszDst 是堆疊型緩衝區時。 此外,如果輸出字串對於緩衝區來說太大,則會以無訊息方式截斷輸出字串。 這可能會導致規範化或其他安全漏洞。

如果 pszDst 緩衝區不夠大,無法包含整個轉換的輸出字串,則會截斷字串以符合緩衝區。 無法偵測傳回字串是否已截斷。 字串一律會以 Null 結尾,即使它已被截斷也一樣。 此功能會小心不要在 DBCS 字元組的前導位元組和尾隨位元組之間截斷。 在此情況下,只會傳回 cchBuf-1 字元。

如果 pwszSrcpszDst 緩衝區重疊,則函式的行為會未定義。

便條 請勿假設函式尚未變更字串終止 Null 字元後面的輸出緩衝區中任何字元。 字串終止 Null 字元之後的輸出緩衝區內容是未定義的,最多包含緩衝區中的最後一個字元。
 
SHTCharToAnsi 的定義與 SHUnicodeToAnsi 相同。

需求

Requirement 價值觀
最低支援的用戶端 Windows 2000 專業版、Windows XP [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server、Windows Server 2003 [僅限傳統型應用程式]
目標平臺 窗戶
Header 什爾瓦皮.h
Library mincore_downlevel.lib
DLL Shlwapi.dll(5.0 版或更新版本)

另請參閱

字串Cb複製

字串Cb複製Ex

字串CbCopyN

字串CbCopyNEx

字串Cb長度

字串Cch複製

字串CchCopyEx

字串CchCopyN

字串CchCopyNEx

字串Cch長度