C++ Combine 2 Tchar

bac*_*ace 6 c++ tchar

我正在尝试结合2 tchar.

char username[UNLEN+1];
DWORD username_len = UNLEN+1;
GetUserName(username, &username_len);
TCHAR* appdatapath ="C:\\Users\\"+username+"\\AppData";
Run Code Online (Sandbox Code Playgroud)

但我在appdatapath行收到错误错误.我如何结合2 tchar?谢谢

Eri*_*tin 5

看看strcatwcscat。您不能使用字符数组添加字符指针。

如果您在 Windows 机器上,您可以使用_tcscatwhich 将重定向到正确的函数以根据_UNICODE_MBCS定义使用。

可能还希望通过将 _s 附加到函数名称来使用安全版本。


正如评论中所指出的,您还可以像这样使用 snprintf:

const size_t concatenated_size = 256;
char concatenated[concatenated_size];

snprintf(concatenated, concatenated_size, "C:\\Users\\%s\\AppData", username);
Run Code Online (Sandbox Code Playgroud)

由于您在运行时字符串之前和之后都有字符串文字,因此这可能是一种更好的方法。