如何使用wchar_t *在C中提取和追加路径

时间:2011-08-31 23:05:31

标签: c winapi unicode

我想从GetModuleFileNameW中提取路径,然后将"\hello.dll"附加到其中(不进行"\\\\")。怎么做? (我对Unicode功能不太好)

1 个答案:

答案 0 :(得分:2)

假设您正在使用路径,请使用PathAppendW功能。请注意,您可以通过附加"hello.dll"来执行此操作 - 如果PathAppendW需要,则会添加反斜杠。

或者,您可以非常轻松地编写自己的函数。这是我在std::wstring s

方面在5分钟内汇集在一起​​的一个例子
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;
}