Index: source/Host/windows/FileSystem.cpp =================================================================== --- source/Host/windows/FileSystem.cpp +++ source/Host/windows/FileSystem.cpp @@ -10,6 +10,8 @@ #include "lldb/Host/windows/windows.h" #include +#include +#include #include "lldb/Host/FileSystem.h" @@ -27,8 +29,12 @@ // On Win32, the mode parameter is ignored, as Windows files and directories support a // different permission model than POSIX. Error error; - if (!::CreateDirectory(path, NULL) && GetLastError() != ERROR_ALREADY_EXISTS) - error.SetError(::GetLastError(), lldb::eErrorTypeWin32); + const std::string a_path(path); + const std::wstring w_path(a_path.begin(), a_path.end()); + const auto res = ::SHCreateDirectory(NULL, w_path.c_str()); + if (res != ERROR_SUCCESS && res != ERROR_ALREADY_EXISTS) + error.SetError(res, lldb::eErrorTypeWin32); + return error; }