Поделиться через


Функция 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

См. также

переменных среды

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