Как извлечь и добавить путь в C, используя wchar_t * - PullRequest
0 голосов
/ 01 сентября 2011

Я хочу извлечь путь из GetModuleFileNameW, а затем добавить к нему "\hello.dll" (не делая "\\\\"). Как это сделать? (Я не очень хорош с функциями Юникода)

1 Ответ

2 голосов
/ 01 сентября 2011

Если вы действительно работаете с путями, используйте функцию PathAppendW. Обратите внимание, что вы делаете это, добавляя "hello.dll" - обратная косая черта будет добавлена, если требуется PathAppendW.

Кроме того, вы можете написать свою собственную функцию довольно легко. Вот пример, который я собрал за 5 минут в терминах std::wstring s

std::wstring PathAppend(const std::wstring& lhs, const std::wstring& rhs)
{
    if (lhs.empty())
    {
        return rhs;
    }
    else if (rhs.empty())
    {
        return lhs;
    }
    std::wstring result(lhs);
    if (*lhs.rbegin() == L'\\')
    {
        result.append(rhs.begin() + (rhs[0] == L'\\'), rhs.end());
    }
    else
    {
        if (rhs[0] != L'\\')
        {
            result.push_back(L'\\');
        }
        result.append(rhs);
    }
    return result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...