O que é a maneira mais simples de carvão animal convertido [] para / de TCHAR [] em C / C ++ (ms)?

StackOverflow https://stackoverflow.com/questions/159442

  •  03-07-2019
  •  | 
  •  

Pergunta

Esta parece ser uma pergunta muito softball, mas eu sempre tenho dificuldade em olhar-se esta função, porque não parecem existem tantas variações em relação à referência de caractere e TCHAR.

Foi útil?

Outras dicas

A maneira mais simples é usar as macros de conversão:

  • CW2A
  • CA2W
  • etc ...

MSDN

TCHAR é um typedef específico da Microsoft para qualquer caractere ou wchar_t (uma grande personagem).

A conversão para carvão depende de qual delas é realmente. Se TCHAR é realmente um char, então você pode fazer um molde simples, mas se ele é realmente um wchar_t, você vai precisar de uma rotina para converter entre conjuntos de caracteres. Veja a função MultiByteToWideChar ()

Existem algumas respostas neste post, bem como, especialmente se você está procurando uma solução multi-plataforma:

UTF-8 para / de conversão de char ampla em STL

Embora nesta situação particular, eu acho que o TCHAR é uma grande personagem que eu só precisa fazer a conversão se não é. que eu tenho que verificar alguma forma.

if (sizeof(TCHAR) != sizeof(wchar_t))
{  .... }

A coisa legal sobre isso é ambos os tamanhos dos iguais são constantes, o que significa que o compilador irá lidar com (e remover) as if (), e se eles são iguais, remover tudo dentro das chaves

Aqui está o código CPP que as duplicatas _TCHAR * argv [] para char * argn [].

http://www.wincli.com/?p=72

Se você adotar código antigo para o Windows, uso simples definem mencionado no código como opcional.

Você pode colocar condição em seu código

ifdef _UNICODE

{// gosto TCHAR é char WIDE} else {// gosto TCHAR é char}

Sei que esta é uma discussão antiga, mas não conseguiu me a resposta "certa", por isso estou adicionando-o agora.

A forma como este parece ser feito agora é usar a macro TEXT. O exemplo para FindFirstFile no MSDN aponta isso. http://msdn.microsoft .com / en-us / library / janelas / desktop / aa364418% 28v = VS.85% 29.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top