LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
在这里,我收到了输出Computer\N,只是我希望输出类似于 Computer\Network\Value 。为此提供解决方案..
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine);
printf("%s",s);
在这里,我收到了输出Computer\N,只是我希望输出类似于 Computer\Network\Value 。为此提供解决方案..
指向 Machine 的字符串是一个 unicode 字符串,因此在字符“N”之后有一个 NULL 字符。因此,如果您使用非 unicode 字符串连接,您将获得类似的输出。您不应该像这样混合使用 unicode 和非 unicode 字符串。你可以这样做:
LPCTSTR Machine=L"Network\\Value";
TCHAR s[100]=_T("Computer\\");
_tcscat(s,Machine);
std::wcout<<s;
您尝试使用 Unicode 字符串来识别 ANSI 字符串。那是行不通的。将第一个字符串设为 ANSI
LPCSTR Machine="Network\\Value";
或使用 MultiByteToWideChar() 转换第二个。
纯C90:
wcstombs(s+strlen(s), Machine, sizeof(s)-strlen(s));