concatenar cadena char * con LPCTSTR
-
13-09-2019 - |
Pregunta
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
Aquí he recibido salida Computer \ n sólo yo esperaba una salida como del equipo \ Red \ Valor. Dar solución para eso ..
Solución
Intenta cancat una cadena ANSI con una cadena Unicode. Eso no funcionará. O bien hacer la cadena fisrt ANSI
LPCSTR Machine="Network\\Value";
o convertir el segundo uno con MultiByteToWideChar ().
Otros consejos
La máquina apuntando cadena es una cadena Unicode y por lo tanto tiene un carácter nulo después del carácter 'N'. Así que si usa concatanation cadena no Unicode obtendrá la salida de esa manera. No hay que mezclar las cadenas Unicode y no Unicode, como eso. Puede hacerlo de esta manera:
LPCTSTR Machine=L"Network\\Value";
TCHAR s[100]=_T("Computer\\");
_tcscat(s,Machine);
std::wcout<<s;
C90 puro:
wcstombs(s+strlen(s), Machine, sizeof(s)-strlen(s));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow