Функция ExpandEnvironmentStringsA (processenv.h)
Расширяет строки переменных среды и заменяет их значениями, определенными для текущего пользователя.
Чтобы указать блок среды для конкретного пользователя или системы, используйте функцию ExpandEnvironmentStringsForUser.
Синтаксис
DWORD ExpandEnvironmentStringsA(
[in] LPCSTR lpSrc,
[out, optional] LPSTR lpDst,
[in] DWORD nSize
);
Параметры
[in] lpSrc
Буфер, содержащий одну или несколько строк переменной среды в форме: %переменнойName%. Для каждой такой ссылки %переменнойName% часть заменена текущим значением этой переменной среды.
Регистр игнорируется при поиске имени переменной среды. Если имя не найдено, %переменнойName% часть остается нераспределенной.
Обратите внимание, что эта функция не поддерживает все функции, которые Cmd.exe поддерживаются. Например, он не поддерживает %переменнойName:str1=str2% или %переменнойName:~смещения,длину%.
[out, optional] lpDst
Указатель на буфер, который получает результат расширения строк переменных среды в буфере lpSrc. Обратите внимание, что этот буфер не может совпадать с буфером lpSrc.
[in] nSize
Максимальное количество символов, которые могут храниться в буфере, на которое указывает параметр lpDst. При использовании строк ANSI размер буфера должен быть длиной строки, а также завершающим символом NULL, а также одним. При использовании строк Юникода размер буфера должен быть длиной строки, а также завершающим символом NULL.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение равно числу TCHARs, хранящимся в целевом буфере, включая завершающий символ NULL. Если целевой буфер слишком мал для хранения развернутой строки, возвращаемое значение является обязательным размером буфера в символах.
Если функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Замечания
Windows Server 2003 и Windows XP: размер lpSrc и буферов lpDst ограничен 32K.
Чтобы заменить имена папок в полном пути связанными строками переменных среды, используйте функцию PathUnExpandEnvStrings.
Чтобы получить список переменных среды для процесса, используйте функцию getEnvironmentStrings
Примеры
Пример см. в получения сведений о системе.
Заметка
Заголовок processenv.h определяет ExpandEnvironmentStrings как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [классические приложения | Приложения UWP] |
минимальный поддерживаемый сервер | Windows 2000 Server [классические приложения | Приложения UWP] |
целевая платформа | Виндоус |
заголовка | processenv.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |