Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se você usar tipos de dados genéricos em seu código, ele pode ser compilado para Unicode simplesmente usando uma diretiva de pré-processador para definir "UNICODE" antes das instruções #include para os arquivos de cabeçalho. Para compilar o código para páginas de código do Windows (ANSI), omita a definição "UNICODE". Novos aplicativos do Windows devem usar Unicode para evitar as inconsistências de páginas de código variadas e simplificar a localização.
Para criar código-fonte que pode ser compilado para usar caracteres Unicode e cadeias de caracteres ou para usar caracteres e cadeias de caracteres de páginas de código do Windows:
Use tipos de dados genéricos, como TCHAR, LPTSTR e LPTCH, para todos os tipos de caracteres e cadeias de caracteres usados para texto. Para obter mais informações sobre tipos genéricos, consulte Tipos de dados do Windows para cadeias de caracteres.
Certifique-se de que os ponteiros para buffers de dados não textuais ou matrizes de bytes binários sejam codificados com tipos de dados como LPBYTE ou LPWORD, em vez do tipo LPTSTR ou LPTCH.
Declare ponteiros de tipo indeterminado explicitamente como ponteiros nulos usando LPVOID conforme apropriado.
Torne a aritmética do ponteiro independente do tipo. O uso de unidades de tamanho TCHAR produz variáveis que são 2 bytes se UNICODE estiver definido e 1 byte se UNICODE não estiver definido. O uso da aritmética de ponteiro sempre retorna o número de elementos indicados pelo ponteiro, quer os elementos tenham 1 ou 2 bytes de tamanho. A expressão a seguir sempre recupera o número de elementos, independentemente de UNICODE estar definido.
cCount = lpEnd - lpStart;A expressão a seguir determina o número de bytes usados.
cByteCount = (lpEnd - lpStart) * sizeof(TCHAR);Não há necessidade de alterar uma instrução como a seguinte, porque o incremento do ponteiro aponta para o próximo elemento de caractere.
chNext = *++lpText;Substitua cadeias de caracteres literais e constantes de caracteres explícitas por macros. Altere expressões como a seguinte.
while(*lpFileName++ != '\\') { // ... }Use o TEXT macro da seguinte forma nesta expressão.
while(*lpFileName++ != TEXT('\\')) { // ... }A macro TEXT faz com que as cadeias de caracteres sejam avaliadas como L"string" quando UNICODE é definido e como "string" caso contrário. Para facilitar o gerenciamento, mova cadeias de caracteres literais para recursos, especialmente se elas contiverem caracteres fora do intervalo ASCII (0x00 a 0x7F) ou forem expostas na interface do usuário. Para suportar a localização do seu aplicativo para diferentes idiomas nacionais, é muito importante que todas as cadeias de caracteres da interface do usuário estejam em recursos localizáveis.
Use as versões genéricas das funções do Windows. Para obter mais informações, consulte Convenções para Protótipos de Função.
Use as versões genéricas das funções de cadeia de caracteres da biblioteca C padrão e lembre-se de definir "_UNICODE", bem como "UNICODE", conforme discutido em Funções C padrão.
Se você estiver adaptando um aplicativo originalmente escrito para páginas de código do Windows, lembre-se de alterar qualquer código que dependa de 255 como o maior valor para um caractere.
Quando você compila o código que você escreveu conforme descrito acima, o compilador pode criar versões de página de código Unicode e Windows do seu aplicativo a partir da mesma fonte. Dependendo das definições para UNICODE, as funções genéricas são resolvidas para produzir os mesmos arquivos binários como se você escrevesse código exclusivamente para Unicode ou exclusivamente para páginas de código do Windows.
Tópicos relacionados