corda concatenar char * com LPCTSTR
-
13-09-2019 - |
Pergunta
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
Aqui eu recebi saída Computer \ N Só espero saída como Computer \ Network \ Value. Dar solução para isso ..
Solução
Você tenta concat uma cadeia ANSI com uma seqüência de caracteres Unicode. Isso não vai funcionar. Ou fazei a corda fisrt ANSI
LPCSTR Machine="Network\\Value";
ou converter o segundo com MultiByteToWideChar ().
Outras dicas
A seqüência Máquina pontas é uma seqüência de caracteres Unicode e, portanto, tem um carácter NULL após o caractere 'N'. Então, se você usar concatanation string não-unicode você vai obter o resultado como esse. Você não deve misturar as Unicode e não-Unicode seqüências como essa. Você pode fazê-lo como este:
LPCTSTR Machine=L"Network\\Value";
TCHAR s[100]=_T("Computer\\");
_tcscat(s,Machine);
std::wcout<<s;
C90 Pure:
wcstombs(s+strlen(s), Machine, sizeof(s)-strlen(s));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow