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

¿Fue útil?

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