处理带有环境变量的路径

·

三个相关函数

  • ExpandEnvironmentStrings

按照当前用户的环境变量展开路径中的环境变量(将路劲中的环境变量展开成标准路径)。

  • ExpandEnvironmentStringsForUser

按照指定用户的环境变量展开路径中的环境变量。

  • PathUnExpandEnvStrings

与上面两个函数的功能相反,是将路径中的某些部分替换成环境变量。

ExpandEnvironmentStrings的例子

#include <iostream>
#include <Windows.h>

int main()
{
    DWORD cch;
    char output[MAX_PATH];

    cch = ExpandEnvironmentStringsA("%SystemRoot%\\system32\\shell32.dll", output, MAX_PATH);
    std::cout << output << std::endl << "ouput TCHARS:" << cch << std::endl;
    //当输入字符串不包含环境变量,就直接拷贝字符串到输出缓冲区,返回值为输出字符数,和上面的情况相同
    cch = ExpandEnvironmentStringsA("C:\\WINDOWS\\SYSTEM32\\shell32.dll", output, MAX_PATH);
    std::cout << output << std::endl << "ouput TCHARS:" << cch << std::endl;

    return 0;
}

运行后如下图

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注