Не работает PathCombine

417
02 августа 2017, 21:34

P.S: VS - 2015

Пытаюсь сложить 2 пути но не получается, постоянные ошибки при использование функции PathCombine

#include <windows.h>
#include "Shlwapi.h" // <Shlwapi.h>

Допустим у меня есть папка Temp

TCHAR myPath[MAX_PATH];
GetTempPath(MAX_PATH, myPath);

И я хочу дать название папки, которую нужно создать в папке Temp

const std::wstring fname = L"MyDirectory";

Дальше функция для создание папки:

BOOL DirectoryExists(LPCTSTR szPath)
{
    DWORD dwAttrib = GetFileAttributes(szPath);
    return (dwAttrib != INVALID_FILE_ATTRIBUTES && (dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
void createDirectoryRecursively(std::wstring path)
{
    unsigned int pos = 0;
    do
    {
        pos = path.find_first_of(L"\\/", pos + 1);
        CreateDirectory(path.substr(0, pos).c_str(), NULL);
    } while (pos != std::string::npos);
}

Теперь функция по слиянию папки "Temp" и "MyDirectory"

std::wstring directory = PathCombine(NULL, myPath, fname.c_str()); // Слияние 2 пути
if (DirectoryExists(directory.c_str()) == FALSE) // Проверка
createDirectoryRecursively(directory); // Создание папки

В итоге получаю ошибку:

Попробовал изменить на PathCombineW

P.P.S: std::wstring directory = std::wstring(myPath) + fname; Так работает, но проблема с PathCombine осталась, как её решить?

Answer 1

Попробуйте включить в проект библиотеку ShLwApi.Lib

READ ALSO
Как запретить обновления содержимого QListView в автоматическом режиме?

Как запретить обновления содержимого QListView в автоматическом режиме?

При соединении модели данных QAbstractTableModel к QListView данные обновляются автоматически (постоянно вызывается функция data)

386
Как выводить шрифт Wingdings?

Как выводить шрифт Wingdings?

Дело в том, что требуется вывод текста шрифтом "Wingdings"В Code::Blocks этот шрифт отображается криво

325
Как обрабатывать исключения SHCreateDirectoryEx

Как обрабатывать исключения SHCreateDirectoryEx

Как обработать исключение при создание папки?

387
Различные имена типа в объявлении и определении шаблонной функции

Различные имена типа в объявлении и определении шаблонной функции

Недавно столкнулся с такой проблемой как осложнение operator<< для template class, и вот ищя ответ на этот вопрос, перерыл много вопросов на английском...

268