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