ExpandEnvironmentStringsA 函数 (processenv.h)

展开环境变量字符串,并将其替换为为当前用户定义的值。

若要为特定用户或系统指定环境块,请使用 ExpandEnvironmentStringsForUser 函数。

语法

DWORD ExpandEnvironmentStringsA(
  [in]            LPCSTR lpSrc,
  [out, optional] LPSTR  lpDst,
  [in]            DWORD  nSize
);

参数

[in] lpSrc

包含一个或多个环境变量字符串的缓冲区,格式为:%variableName%。 对于每个此类引用,%variableName% 部分将替换为该环境变量的当前值。

查找环境变量名称时,将忽略大小写。 如果未找到该名称,则 %variableName% 部分未展开。

请注意,此函数不支持 Cmd.exe 支持的所有功能。 例如,它不支持 %variableNamestr1=str2% 或 %variableName:~offset,length%。

[out, optional] lpDst

指向缓冲区的指针,该缓冲区接收扩展 lpSrc 缓冲区中的环境变量字符串的结果。 请注意,此缓冲区不能与 lpSrc 缓冲区相同。

[in] nSize

lpDst 参数指向的缓冲区中可以存储的最大字符数。 使用 ANSI 字符串时,缓冲区大小应为字符串长度,加上终止 null 字符加 1。 使用 Unicode 字符串时,缓冲区大小应为字符串长度加上终止 null 字符。

返回值

如果函数成功,则返回值是存储在目标缓冲区中的 TCHAR 数,包括终止 null 字符。 如果目标缓冲区太小而无法容纳展开的字符串,则返回值是所需的缓冲区大小(以字符为单位)。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

lpSrclpDst 缓冲区的大小限制为 32K。

若要将完全限定路径中的文件夹名称替换为其关联的环境变量字符串,请使用 PathUnExpandEnvStrings 函数。

若要检索进程的环境变量列表,请使用 GetEnvironmentStrings 函数。

示例

有关示例,请参阅 获取系统信息

注意

processenv.h 标头将 ExpandEnvironmentStrings 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 processenv.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

环境变量

系统信息函数