Функция GetBinaryTypeA (winbase.h)
Определяет, является ли файл исполняемым файлом (.exe) и если да, какая подсистема запускает исполняемый файл.
Синтаксис
BOOL GetBinaryTypeA(
[in] LPCSTR lpApplicationName,
[out] LPDWORD lpBinaryType
);
Параметры
[in] lpApplicationName
Полный путь к файлу, тип исполняемого файла которого должен быть определен.
По умолчанию имя ограничено MAX_PATH символами. Чтобы расширить это ограничение до 32 767 расширенных символов, добавьте "\\?\" в путь. Дополнительные сведения см. в именовании файлов, путей и пространств имен.
Кончик
Начиная с Windows 10 версии 1607, вы можете отказаться от ограничения MAX_PATH без предустановки "\\?\". Дополнительные сведения см. в разделе "Ограничение максимальной длины пути" файлы именования, пути и пространства имен.
[out] lpBinaryType
Указатель на переменную для получения сведений о типе исполняемого файла, заданного lpApplicationName. Определены следующие константы.
Возвращаемое значение
Если файл является исполняемым, возвращаемое значение ненулевое. Функция задает переменную, на которую указывает lpBinaryType, чтобы указать тип исполняемого файла.
Если файл недоступен или функция завершается ошибкой, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError. Если файл является библиотекой DLL, последний код ошибки ERROR_BAD_EXE_FORMAT.
Замечания
В качестве альтернативы можно получить те же сведения, вызвав функцию SHGetFileInfo, передав флаг SHGFI_EXETYPE в параметре uFlags.
Поведение символьной ссылки— если путь указывает на символьную ссылку, используется целевой файл.
В Windows 8 и Windows Server 2012 эта функция поддерживается следующими технологиями.
Технологии | Поддержанный |
---|---|
Протокол SMB 3.0 | Да |
Отработка отказа SMB 3.0 (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Отказоустойчивая файловая система (ReFS) | Да |
Заметка
Заголовок winbase.h определяет GetBinaryType как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winbase.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |