Функция ExpandEnvironmentStringsW (processenv.h)

Развертывает строки переменных среды и заменяет их значениями, определенными для текущего пользователя.

Чтобы указать блок среды для конкретного пользователя или системы, используйте функцию ExpandEnvironmentStringsForUser .

Синтаксис

DWORD ExpandEnvironmentStringsW(
  [in]            LPCWSTR lpSrc,
  [out, optional] LPWSTR  lpDst,
  [in]            DWORD   nSize
);

Параметры

[in] lpSrc

Буфер, содержащий одну или несколько строк переменных среды в виде : %variableName%. Для каждой такой ссылки часть %variableName% заменяется текущим значением этой переменной среды.

Регистр игнорируется при поиске имени переменной среды. Если имя не найдено, часть %variableName% остается нерасширяемой.

Обратите внимание, что эта функция поддерживает не все функции, поддерживаемые Cmd.exe. Например, он не поддерживает %variableName:str1=str2% или %variableName:~offset,length%.

[out, optional] lpDst

Указатель на буфер, получающий результат расширения строк переменных среды в буфере lpSrc . Обратите внимание, что этот буфер не может совпадать с буфером lpSrc .

[in] nSize

Максимальное количество символов, которое может храниться в буфере, на который указывает параметр lpDst . При использовании строк ANSI размер буфера должен быть длиной строки, а также завершающим символом NULL плюс один. При использовании строк Юникода размер буфера должен быть длиной строки и завершающим символом NULL.

Возвращаемое значение

Если функция выполняется успешно, возвращаемым значением будет количество TCHAR , хранящихся в буфере назначения, включая завершающий символ NULL. Если буфер назначения слишком мал для хранения развернутой строки, возвращаемое значение — это требуемый размер буфера в символах.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Размер буферов lpSrc и lpDst ограничен 32 КБ.

Чтобы заменить имена папок в полном пути связанными строками переменных среды, используйте функцию PathUnExpandEnvStrings .

Чтобы получить список переменных среды для процесса, используйте функцию GetEnvironmentStrings .

Примеры

Пример см. в разделе Получение сведений о системе.

Примечание

Заголовок processenv.h определяет ExpandEnvironmentStrings в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header processenv.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

Переменные среды

Системные информационные функции