C++ 合并 2 个 Tchar

标签 c++ tchar

我正在尝试合并 2 个 tchar。

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

但我在 appdatapath 行收到错误错误。我怎样才能结合2个tchar?谢谢

最佳答案

看看strcatwcscat .不能用 char 数组添加 char 指针。

如果您使用的是 Windows 机器,您可以使用 _tcscat,它会根据 _UNICODE_MBCS 重定向到要使用的正确函数定义。

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


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

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

snprintf(concatenated, concatenated_size, "C:\\Users\\%s\\AppData", username);

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

关于C++ 合并 2 个 Tchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21578455/

相关文章:

c++ - getdepth 函数在 MarchingCube 算法中如何工作?

c - wcscpy 不接受目标变量中的 TCHAR

c - 尝试制作 tchar 时从非宽字符串初始化的 int 数组

c++ - StringCbPrintf 示例不工作

c++ - 如何使用 C++ 在 Mac OSX 中显示输入框

c++ - 在屏幕上绘制纹理

c++ - 如何在 VS2010 C++ 宏中使用 DTE.ExecuteCommand ("Edit.GoToDefinition")?

c++ - Visual Studio 2015 fatal error C1001

char - 我如何错误地使用 CA2W?

c - 如何在 C 中将十六进制连接到字符串