Функция 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 Transparent Failover (TFO) | Да |
SMB 3.0 с масштабируемыми общими папками (SO) | Да |
Файловая система общего тома кластера (CSVFS) | Да |
Восстанавливаемая файловая система (ReFS) | Да |
Примечание
Заголовок winbase.h определяет GetBinaryType в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winbase.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |