NlsDllCodePageTranslation 函式 (gb18030.h)

根據旗標設定,用來取得字碼頁資訊或進行轉換。

注意 請勿使用此函式。 在不同版本的 Windows 中,它可以有不同的行為。 若要將 GB18030 位元組轉換為 Unicode 字元或 Unicode 字元為 GB18030 位元組,請使用 MultiByteToWideCharWideCharToMultiByte 函式。
 

語法

DWORD NlsDllCodePageTranslation(
  [in]      DWORD    CodePage,
  [in]      DWORD    dwFlags,
  [in, out] LPSTR    lpMultiByteStr,
  [in]      int      cchMultiByte,
  [in, out] LPWSTR   lpWideCharStr,
  [in]      int      cchWideChar,
  [in]      LPCPINFO lpCPInfo
);

參數

[in] CodePage

字碼頁的值。 字碼頁值應該是 54936。 否則,函式會傳回錯誤碼。

[in] dwFlags

指定翻譯的旗標。 下表中定義了可能的值。

意義
NLS_CP_CPINFO
擷取 lpCPInfo所指向之緩衝區中的字碼頁資訊。 不會使用 lpMultiByteStrcchMultiBytelpWideCharStrcchWideChar 參數。
NLS_CP_MBTOWC
將 GB18030 位元組轉換為 Unicode 字元。 來源 GB18030 字元應該由 lpMultiByteStr指向, 而 cchMultiByte 應該包含緩衝區的位元組計數。 Unicode 結果會儲存在 lpWideCharStr所指向的緩衝區中, 而 cchWideChar 應該包含 Unicode 緩衝區的字元計數。 如果 lpWideCharStrcchWideChar 為 0,則會傳回 Unicode 結果的預期字元計數,而且不會進行轉換。 在此情況下,不會使用 lpCPInfo 參數。
NLS_CP_WCTOMB
將 Unicode 字元轉換為 GB18030 位元組。 來源 Unicode 字串應該由 lpWideCharStr指向, cchWideChar 應該包含緩衝區的字元計數。 GB18030 結果會儲存在 lpMultiByteStr所指向的緩衝區中, 而 cchMultiByte 應該包含 GB18030 緩衝區的位元組計數。 如果 lpMultiByteStrcchMultiByte 是 0,則會傳回 GB18030 結果的位元組計數,而且不會進行轉換。 在此情況下,不會使用 lpCPInfo 參數。

[in, out] lpMultiByteStr

包含多位元組 GB18030 字元的緩衝區指標。 這可以是來源緩衝區或目標緩衝區,視 dwFlags的值而定。

[in] cchMultiByte

多位元組緩衝區的位元組計數。

[in, out] lpWideCharStr

包含 Unicode 字元的緩衝區指標。 這可以是來源緩衝區或目標緩衝區,視 dwFlags的值而定。

[in] cchWideChar

Unicode 緩衝區的字元計數。

[in] lpCPInfo

CPINFO結構的指標。

傳回值

如果成功,則傳回 1。 如果函式未成功,則會傳回 0。 若要取得延伸的錯誤資訊,應用程式可以呼叫 GetLastError,這可以傳回下列其中一個錯誤碼:

  • ERROR_INVALID_PARAMETER。 任何參數值都無效。

需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 gb18030.h
Dll C_g18030.dll

另請參閱

MultiByteToWideChar

WideCharToMultiByte