Compartilhar via


WideCharToMultiByte

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função mapeia um todo-seqüência de caracteres para um novo seqüência de caracteres. O novo seqüência de caracteres não é necessariamente de um multibyte conjunto de caracteres.

Syntax

int WideCharToMultiByte(
  UINT CodePage,
  DWORD dwFlags,
  LPCWSTR lpWideCharStr,
  int cchWideChar,
  LPSTR lpMultiByteStr,
  int cbMultiByte,
  LPCSTR lpDefaultChar,
  LPBOOL lpUsedDefaultChar
);

Parameters

  • Codepage
    [no] Página de código usada para executar a conversão.

    Você pode definir esse parâmetro para qualquer página de código que está instalado ou disponível no sistema. Você também pode especificar um dos valores mostrados na seguinte tabela.

    Valor Descrição

    CP_ACP

    Página de código ANSI

    CP_MACCP

    Não suportado

    CP_OEMCP

    Página de código OEM

    CP_SYMBOL

    Não suportado

    CP_THREAD_ACP

    Não suportado

    CP_UTF7

    Página de código UTF-7

    CP_UTF8

    Página de código UTF-8

    Quando SYSGEN_LOCUSA é definida, somente as páginas codificar 1252 e 437 são com suporte.

    Para criar uma imagem que tenha muito limitado suporte localidade, especificar a imagem com SYSGEN_CORELOC e pôr as localidades necessárias para a imagem em Public\Common\Oak\Files\Nlscfg.inf.

  • dwFlags
    [no] Tratamento de desmapeado de caracteres. A função executa mais rapidamente quando nenhuma desses sinalizadores está definida.

    As constantes sinalizador descritas a seguinte tabela.

    Valor Descrição

    WC_COMPOSITECHECK

    Converter composição caracteres para caracteres precomposed.

    WC_DEFAULTCHAR

    Substitua exceções o caractere usar como padrão durante conversão.

    WC_DISCARDNS

    Descarte caracteres nonspacing durante conversão.

    WC_SEPCHARS

    Gerar separar caracteres durante conversão.

    Esse é o comportamento conversão usar como padrão.

    Quando WC_COMPOSITECHECK for especificada, a função converte composição caracteres para caracteres precomposed.

    Uma composição caractere consiste em um caractere de base e um caractere nonspacing, cada um com valores diferentes caractere.

    Um caractere precomposed tem um valor para uma combinação caractere base/nonspacing caractere único. Em è o caractere, o e é o caractere de base e a marca circunflexo acentuação é o caractere nonspacing.

    Quando um aplicativo especifica WC_COMPOSITECHECK, ele pode usar os sinalizadores três últimos nessa lista (WC_DISCARDNS, WC_SEPCHARS e WC_DEFAULTCHAR) para personalizar a conversão para caracteres precomposed.

    Esses sinalizadores determinam o comportamento da função quando não houver nenhum mapeamento precomposed para uma combinação caractere base/nonspace em um todo-seqüência de caracteres.

    Esses sinalizadores três últimos só podem ser usados se o sinalizador WC_COMPOSITECHECK for definida.

    Usar como padrão comportamento a função é gerar separar caracteres (WC_SEPCHARS) para desmapeado composição caracteres.

  • lpWideCharStr
    [no] Ponteiro para o toda-seqüência de caracteres a ser convertido.
  • cchWideChar
    [no] Número de Unicode (16-bit) caracteres o seqüência de caracteres apontado pelo lpWideCharStr parâmetro. Se esse valor é – 1, o seqüência de caracteres será considerado terminada por caractere nulo e o comprimento é calculado automaticamente.
  • lpMultiByteStr
    [out] Ponteiro para a reserva para receber o seqüência de caracteres convertida.
  • cbMultiByte
    [no] Tamanho, em bytes, da reserva apontado pelo lpMultiByteStr parâmetro. Se esse valor for zero, a função retornará o número de bytes exigido para a reserva. (Neste maiúsculas e minúsculas, o lpMultiByteStr reserva não é usada.)
  • lpDefaultChar
    [no] Ponteiro para o caractere usado se uma caractere largo não pode ser representada na página de código especificado. Se este parâmetro é NULL, um valor usar como padrão sistema é usado.

    A função é mais rápido quando ambos lpDefaultChar e lpUsedDefaultChar são NULL.

  • lpUsedDefaultChar
    [in, Out] Ponteiro para um sinalizador que indica se um caractere usar como padrão foi usado.

    O sinalizador for definido como TRUE se um ou mais caracteres de largura no seqüência de caracteres de origem não podem ser representados na página de código especificado. Caso contrário, o sinalizador é definido como FALSE.

    Este parâmetro pode ser NULL.

    A função é mais rápido quando ambos lpDefaultChar e lpUsedDefaultChar são NULL.

Return Value

O número de bytes gravados para a reserva apontado pelo lpMultiByteStr Indica se o sucesso cbMultiByte é diferente de zero.

O exigido tamanho, em bytes, de uma reserva que possa receber o seqüência de caracteres traduzido indica êxito se cbMultiByte For zero.

Zero indica falha. Para informações de erro estendidas get, chamar GetLastError. Valores possíveis para GetLastError Incluir o seguinte:

  • ERROR_INSUFFICIENT_BUFFER
  • ERROR_INVALID_FLAGS
  • ERROR_INVALID_PARAMETER

Remarks

Se a pasta lpMultiByteStr e lpWideCharStr Os ponteiros são os mesmos, o função falhar, e GetLastError Retorna ERROR_INVALID_PARAMETER. Um aplicativo pode usar o lpDefaultChar parâmetro para alteração de caractere usar como padrão usado para a conversão.

WideCharToMultiByte Opera mais eficiente quando ambos lpDefaultChar e lpUsedDefaultChar são NULL. O comportamento do WideCharToMultiByte Para as quatro combinações de lpDefaultChar e lpUsedDefaultChar é mostrada na seguinte tabela.

lpDefaultChar lpUsedDefaultChar Resultado

NULL

NULL

Nenhuma verificação usar como padrão. Este é o mais eficiente, rápido maneira de usar essa função.

Não-NULL

NULL

Usa o caractere especificado usar como padrão, mas não definir lpUsedDefaultChar.

NULL

Não-NULL

Usa o caractere usar como padrão sistema e define lpUsedDefaultChar se necessário.

Não-NULL

Não-NULL

Usa o caractere usar como padrão especificado e define lpUsedDefaultChar se necessário.

Requirements

Header winnls.h
Library coredll.lib
Windows Embedded CE Windows CE 1.01 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Unicode Functions
MultiByteToWideChar