Функция GetWindowsDirectoryA (sysinfoapi.h)

Извлекает путь к каталогу Windows.

Эта функция предоставляется в первую очередь для обеспечения совместимости с устаревшими приложениями. Новые приложения должны хранить код в папке Program Files, а постоянные данные — в папке Application Data в профиле пользователя. Дополнительные сведения см. в разделе ShGetFolderPath.

Синтаксис

UINT GetWindowsDirectoryA(
  [out] LPSTR lpBuffer,
  [in]  UINT  uSize
);

Параметры

[out] lpBuffer

Указатель на буфер, получающий путь. Этот путь не заканчивается обратной косой чертой, если каталог Windows не является корневым каталогом. Например, если каталог Windows называется Windows на диске C, путь к каталогу Windows, полученному этой функцией, — C:\Windows. Если система была установлена в корневом каталоге диска C, извлекается путь C:.

[in] uSize

Максимальный размер буфера, заданный параметром lpBuffer , в TCHARs. Это значение должно быть равно MAX_PATH.

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

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

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

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

Комментарии

Каталог Windows — это каталог, в котором хранятся файлы инициализации и справки некоторых устаревших приложений. Новые приложения не должны хранить файлы в каталоге Windows; Вместо этого они должны хранить системные данные в каталоге установки приложения, а данные пользователя — в профиле пользователя.

Если пользователь использует общую версию системы, каталог Windows гарантированно будет частным для каждого пользователя.

Если приложение создает другие файлы, которые оно хочет хранить для каждого пользователя, оно должно поместить их в каталог, указанный в переменной среды HOMEPATH. Этот каталог будет отличаться для каждого пользователя, если он указан администратором, с помощью средства администрирования Диспетчера пользователей. HOMEPATH всегда указывает либо домашний каталог пользователя, который гарантированно является частным для каждого пользователя, либо каталог по умолчанию (например, C:\USERS\DEFAULT), к которому у пользователя будет полный доступ.

Службы терминалов: Если приложение выполняется в среде служб терминалов, у каждого пользователя есть частный каталог Windows. Существует также общий каталог Windows для системы. Если приложение поддерживает службы терминалов (в заголовке изображения установлен флаг IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE ), эта функция возвращает путь к системном каталогу Windows так же, как функция GetSystemWindowsDirectory . В противном случае извлекается путь к частному каталогу Windows для пользователя.

Примеры

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

Примечание

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

Требования

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

См. также

GetCurrentDirectory

GetSystemDirectory

GetSystemWindowsDirectory

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