问题描述
我正在尝试在我的 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);
但是,您将问题标记为 c++,因此只需使用 std::wstring
:
MessageBox(hWnd,(std::wstring(buffer)+L"\\").c_str(),L"New Folder Directory",MB_OK | MB_ICONINFORMATION);