Windows API

WindowsAPI (англ. application programming interfaces) — общее наименование набора базовых функцийинтерфейсов программирования приложений операционных систем семействMicrosoft Windows корпорацииМайкрософт. Предоставляет прямой способ взаимодействия приложений пользователя с операционной системойWindows. Для создания программ, использующихWindows API, корпорация Майкрософт выпускаеткомплект разработчика программного обеспечения, который называетсяPlatform SDK и содержит документацию, наборбиблиотек, утилит и других инструментальных средств для разработки.
Общие сведения
[править |править код]Windows API спроектирован для использования в языкеСи для написанияприкладных программ, предназначенных для работы под управлением операционной системы MS Windows. Работа черезWindows API — это наиболее близкий к операционной системе способ взаимодействия с ней из прикладных программ. Болеенизкий уровень доступа, необходимый только длядрайверов устройств, в текущих версияхWindows предоставляется черезWindows Driver Model.
Windows API представляет собой множество функций, структур данных и числовых констант, следующих соглашениям языка Си. В то же времяконвенция вызова функций отличается отcdecl, принятой для языка C: Windows API используетstdcall (winapi). Все языки программирования, способные вызывать такие функции и оперировать такими типами данных в программах, исполняемых в среде Windows, могут пользоваться этим API. В частности, это языкиC++,C#,Pascal,Visual Basic,PureBasic и многие другие.
Для облегчения программирования под Windows в компании Microsoft и сторонними разработчиками было предпринято множество попыток создать библиотеки и среды программирования, частично или полностью скрывающие от программиста особенности Windows API и предоставляющие ту или иную часть его возможностей в более удобном виде. В частности, сама Microsoft в разное время предлагала библиотекиActive Template Library (ATL)/Windows Template Library (WTL),Microsoft Foundation Classes (MFC),.Net/WinForms/WPF, TXLib. Компания Borland (ныне Embarcadero, её преемник в части средств разработки) предлагалаOWL иVCL. Есть кросс-платформенные библиотеки, такие какQt,Tk и многие другие. Весомая часть этих библиотек сконцентрирована на облегчении программированияграфического интерфейса пользователя.
Для облегчения переноса на другие платформы программ, написанных с опорой на Windows API, сделана библиотекаWine.
Версии
[править |править код]- Win16 — первая версияWinAPI для 16-разрядных версийWindows. Изначально называлсяWindows API, позднее был ретроспективно переименован вWin16 для отличия отWin32. Описан в стандартеECMA-234.
- Win32 — 32-разрядныйAPI для современных версийWindows. Самая популярная ныне версия. Базовые функции реализованы вдинамически подключаемых библиотеках
kernel32.dll
иadvapi32.dll
; базовые модулиграфического интерфейса пользователя — вuser32.dll
иgdi32.dll
.Win32 появился вместе сWindows NT и затем был перенесён в несколько ограниченном виде в системы серииWindows 9x. В современных версияхWindows, происходящих отWindows NT, работуWin32 GUI обеспечивают два модуля:csrss.exe
(процесс исполнения клиент-сервер), работающий впользовательском режиме, иwin32k.sys
врежиме ядра. Работу же системы обеспечиваетядро —ntoskrnl.exe
. - Win32s — подмножествоWin32, устанавливаемое на семейство 16-разрядных системWindows 3.x и реализующее ограниченный набор функцийWin32 для этих систем.
- Win64 — 64-разрядная версияWin32, содержащая дополнительные функцииWindows на платформахx86-64 иIA-64.
См. также
[править |править код]- Linux kernel API
- .NET Framework.
- Windows Runtime.
- Wine — свободная кроссплатформенная реализация Windows API.
- ReactOS — свободная реализация операционной системы Windows.
Примечания
[править |править код]Литература
[править |править код]- Гэри Неббет. Справочник по базовым функциям API Windows NT/2000 = Windows NT/2000 Native API Reference. —М.:«Вильямс», 2002. — С. 528. —ISBN 1-57870-199-6.