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 ..

Foi útil?

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
scroll top