1
LPCTSTR Machine=L"Network\\Value";
char s[100]="Computer\\";
strcat(s,(const char*)Machine); 
printf("%s",s); 

在这里,我收到了输出Computer\N,只是我希望输出类似于 Computer\Network\Value 。为此提供解决方案..

4

3 回答 3

3

指向 Machine 的字符串是一个 unicode 字符串,因此在字符“N”之后有一个 NULL 字符。因此,如果您使用非 unicode 字符串连接,您将获得类似的输出。您不应该像这样混合使用 unicode 和非 unicode 字符串。你可以这样做:

LPCTSTR Machine=L"Network\\Value";
TCHAR  s[100]=_T("Computer\\");
_tcscat(s,Machine); 
std::wcout<<s;
于 2009-08-12T05:12:54.900 回答
2

您尝试使用 Unicode 字符串来识别 ANSI 字符串。那是行不通的。将第一个字符串设为 ANSI

LPCSTR Machine="Network\\Value";

或使用 MultiByteToWideChar() 转换第二个。

于 2009-08-12T05:13:12.077 回答
0

纯C90:

wcstombs(s+strlen(s), Machine, sizeof(s)-strlen(s));
于 2009-08-12T07:25:30.170 回答