如何使用 Win32 C++ 将斜杠添加到 TCHAR buffer[] 的末尾

How to add slashes to the end of a TCHAR buffer[] using Win32 C++

我正在尝试在我的 Win32 C++ 应用程序中使用 wsprintf() 将两个斜杠“\”添加到 TCHAR 缓冲区[] 的末尾。 变量“buffer”保存着一个文件路径:C:\Users\nayub\Desktop\Folder1\Hello。我想在此文件路径的末尾添加两个斜杠,所以做了以下代码:

wsprintf(filename_buff, buffer, L"\");
MessageBox(hWnd, filename_buff, L"New Folder Directory", MB_OK | MB_ICONINFORMATION);

但是,消息框只显示“C”。我不确定为什么它得到的是“C”而不是文件路径,因为在添加斜线之前,文件路径打印正确。

您使用的 wsprintf() 不正确。它需要看起来更像这样:

wsprintf(filename_buff, L“%s\”, buffer);

或者,您可以使用 PathAddBackslash() 代替:

wcscpy(filename_buff, buffer);
PathAddBackslash(filename_buff);

但是,您将问题标记为 ,因此只需使用 std::wstring 即可:

MessageBox(hWnd, (std::wstring(buffer)+L"\").c_str(), L"New Folder Directory", MB_OK | MB_ICONINFORMATION);