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:~偏移量长度%。

[out, optional] lpDst

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

[in] nSize

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

返回值

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

如果函数失败,则返回值为零。 若要获取扩展的错误信息,请调用 GetLastError

言论

Windows Server 2003 和 Windows XP:lpSrclpDst 缓冲区的大小限制为 32K。

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

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

例子

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

注意

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

要求

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

另请参阅

环境变量

系统信息函数