MultiByteToWideChar
9/8/2008
Essa função mapeia um seqüência de caracteres para um todo-seqüência de caracteres caractere (Unicode).
O seqüência de caracteres mapeado por essa função não é necessariamente de um multibyte conjunto de caracteres.
Syntax
int MultiByteToWideChar(
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cbMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar
);
Parameters
Codepage
[no] Página de código seja usado para executar a conversão. Este parâmetro pode receber o valor de qualquer página de código que está instalado ou disponível no sistema.A seguinte tabela mostra os valores possíveis.
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
dwFlags
[no] Especifica se deseja converter para precomposed ou composição Wide caracteres se uma composição forma existe, se para Usar caracteres glifo no local do controle caracteres e como lidar com inválido caracteres.Você pode especificar uma combinação de constantes as sinalizador mostradas a seguinte tabela.
Valor Descrição MB_COMPOSITE
Sempre use composição caracteres — ou seja, caracteres na qual um caractere de base e um caractere nonspacing têm valores caractere diferente.
Não pode ser usado com MB_PRECOMPOSED.
MB_ERR_INVALID_CHARS
Se a função encontrar um inválido entrada caractere, ele falhar e GetLastError Retorna ERROR_NO_UNICODE_TRANSLATION.
MB_PRECOMPOSED
Sempre use caracteres precomposed — ou seja, caracteres na qual um caractere de base e um caractere nonspacing têm um caractere único valor.
Essa é a opção de conversão usar como padrão. Não pode ser usado com MB_COMPOSITE.
MB_USEGLYPHCHARS
Use caracteres glifo em vez de caracteres controle.
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.
Usar como padrão comportamento a função é converter para a forma precomposed. Se uma forma precomposed não existir, a função tenta converter uma composição forma.
Os sinalizadores MB_PRECOMPOSED e MB_COMPOSITE são mutuamente exclusivos. O sinalizador MB_USEGLYPHCHARS e o MB_ERR_INVALID_CHARS é possível definir regardless of o estado dos outros sinalizadores.
- lpMultiByteStr
[no] Ponteiro para o seqüência de caracteres para ser convertido.
- cbMultiByte
[no] Tamanho, em bytes, da seqüência de caracteres apontado pelo lpMultiByteStr parâmetro. Se esse valor é – 1, o seqüência de caracteres será considerado NULL finalizado e o comprimento é calculado automaticamente.
- lpWideCharStr
[out] Ponteiro para uma reserva que recebe o seqüência de caracteres convertida.
cchWideChar
[no] Tamanho, em caracteres longa, da reserva apontado pelo lpWideCharStr parâmetro.Se esse valor for zero, a função retornará o exigido tamanho do buffer, em caracteres de largura e torna não uso o lpWideCharStr reserva.
Return Value
Número de caracteres de largura gravados a reserva apontado pelo lpWideCharStr Se a função tiver êxito e cchWideChar é diferente de zero.
O exigido tamanho, em caracteres de largura, para uma reserva que possa receber o seqüência de caracteres traduzido se a função tiver êxito e cchWideChar é zero.
Observação
Inclui o valor de retorno o NULL terminação caractere.
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
- ERROR_NO_UNICODE_TRANSLATION
Remarks
Se lpMultiByteStr e lpWideCharStr Os ponteiros são os mesmos, o função falhar, e GetLastError Retorna o valor ERROR_INVALID_PARAMETER. A função falhará se MB_ERR_INVALID_CHARS é definida e encontra um inválido caractere no seqüência de caracteres de origem.
Um inválido caractere é um que seria converter o caractere usar como padrão se MB_ERR_INVALID_CHARS não foi definida, mas não é o caractere usar como padrão no seqüência de caracteres de origem, ou quando um byte inicial for encontrado em um seqüência de caracteres e há não válido byte de seguimento para DBCS seqüências. Quando um inválido caractere for localizado e MB_ERR_INVALID_CHARS está definida, a função retornará 0 e conjuntos GetLastError Com o erro ERROR_NO_UNICODE_TRANSLATION.
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
WideCharToMultiByte
IsDBCSLeadByte