Windows API: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Нет описания правки |
|||
(не показано 47 промежуточных версий 37 участников) | |||
Строка 1: | Строка 1: | ||
[[Файл:WinAPI Scheme.svg|мини|275x275пкс|Роль API в операционной системе Windows.]] |
|||
'''Windows API''' ({{lang-en|application programming interfaces}}) — общее наименование целого набора базовых функций [[интерфейс программирования приложений|интерфейсов программирования приложений]] операционных систем семейств ''[[Microsoft Windows]]'' корпорации [[Майкрософт|«Майкрософт»]] и совместимой с ними свободной бесплатной [[операционная система|операционной системой]] [[ReactOS]]. Является самым прямым способом взаимодействия приложений с ''Windows'' и [[ReactOS]]. Для создания программ, использующих ''Windows API'', «Майкрософт» выпускает [[SDK|комплект разработчика программного обеспечения]], который называется ''[[Platform SDK]]'', и содержит документацию, набор [[Библиотека (программирование)|библиотек]], утилит и других инструментальных средств для разработки. |
|||
'''Windows [[API]]''' ({{lang-en|application programming interfaces}}) — общее наименование набора базовых функций [[интерфейс программирования приложений|интерфейсов программирования приложений]] операционных систем семейств ''[[Microsoft Windows]]'' корпорации [[Майкрософт]]. Предоставляет прямой способ взаимодействия приложений пользователя с операционной системой ''Windows''. Для создания программ, использующих ''Windows API'', корпорация Майкрософт выпускает [[SDK|комплект разработчика программного обеспечения]], который называется ''[[Platform SDK]]'' и содержит документацию, набор [[Библиотека (программирование)|библиотек]], утилит и других инструментальных средств для разработки. |
|||
== Общие сведения == |
== Общие сведения == |
||
''Windows API'' |
''Windows API'' спроектирован для использования в языке [[Си (язык программирования)|Си]] для написания [[Прикладное программное обеспечение|прикладных программ]], предназначенных для работы под управлением операционной системы MS Windows. Работа через ''Windows API'' — это наиболее близкий к операционной системе способ взаимодействия с ней из прикладных программ. Более [[Низкоуровневый язык программирования|низкий уровень доступа]], необходимый только для [[драйвер]]ов устройств, в текущих версиях ''Windows'' предоставляется через ''[[Windows Driver Model]]''. |
||
Windows API представляет собой множество функций, структур данных и числовых констант, следующих соглашениям языка Си. В то же время [[Соглашение о вызове|конвенция вызова]] функций отличается от ''cdecl'', принятой для языка C: Windows API использует ''stdcall'' (''winapi''). Все языки программирования, способные вызывать такие функции и оперировать такими типами данных в программах, исполняемых в среде Windows, могут пользоваться этим API. В частности, это языки [[C++]], [[C Sharp|C#]], [[Pascal]], [[Visual Basic]], [[PureBasic]] и многие другие. |
|||
== Версии == |
|||
* '''Win16''' — первая версия ''Windows API'' для 16-разрядных версий ''Windows''. Изначально назывался просто ''Windows API'', затем стал называться ''Win16'' для отличия от ''Win32''. |
|||
* '''Win32s''' — подмножество ''Win32'', устанавливаемое на семейство 16-разрядных систем ''[[Windows 3.x]]'', и реализующее ограниченный набор функций ''Win32 API'' для этих систем. |
|||
* '''Win32''' — 32-разрядный ''API'' для современных версий ''Windows''. Самая популярная ныне версия. Базовые функции этого ''API'' реализованы в [[динамически подключаемая библиотека|динамически подключаемых библиотеках]] <code>kernel32.dll</code> и <code>advapi32.dll</code>; базовые модули [[Графический интерфейс пользователя|графического интерфейса пользователя]] — в <code>user32.dll</code> и <code>gdi32.dll</code>. ''Win32'' появился вместе с ''[[Windows NT]]'' и затем был перенесён в несколько ограниченном виде в системы серии ''[[Windows 9x]]''. В современных версиях ''Windows'', происходящих от ''Windows NT'', работу ''Win32 GUI'' обеспечивают два модуля: <code>csrss.exe</code> ([[процесс исполнения клиент-сервер]]), работающий в [[режим пользователя|пользовательском режиме]], и <code>win32k.sys</code> в [[режим ядра|режиме ядра]]. Работу же системных ''Win32 API'' обеспечивает [[ядро Windows|ядро]] — <code>ntoskrnl.exe</code>. |
|||
* '''Win64''' — 64-разрядная версия ''Win32'', содержащая дополнительные функции для использования на 64-разрядных компьютерах. ''Win64 API'' можно найти только в 64-разрядных версиях ''[[Windows XP]]'', ''[[Windows Server 2003]]'', ''[[Windows Vista]]'', ''[[Windows Server 2008]]'', ''[[Windows Server 2008 R2]]'' и ''[[Windows 7]]''. |
|||
Для облегчения программирования под Windows в компании Microsoft и сторонними разработчиками было предпринято множество попыток создать библиотеки и среды программирования, частично или полностью скрывающие от программиста особенности Windows API и предоставляющие ту или иную часть его возможностей в более удобном виде. В частности, сама Microsoft в разное время предлагала библиотеки [[Active Template Library]] (ATL)/[[Windows Template Library]] (WTL), [[Microsoft Foundation Classes]] (MFC), [[.Net]]/[[WinForms]]/[[Windows Presentation Foundation|WPF]], TXLib. Компания Borland (ныне Embarcadero, её преемник в части средств разработки) предлагала [[Object Windows Library|OWL]] и [[Visual Component Library|VCL]]. Есть кросс-платформенные библиотеки, такие как [[Qt]], [[Tk]] и многие другие. Весомая часть этих библиотек сконцентрирована на облегчении программирования [[Графический интерфейс пользователя|графического интерфейса пользователя]]. |
|||
== Технологии, доступные через Windows API == |
|||
Алфавитный список технологий, доступных через ''Windows API'': |
|||
Для облегчения переноса на другие платформы программ, написанных с опорой на Windows API, сделана библиотека [[Wine]]. |
|||
* [[Система контроля и управления доступом]]. |
|||
* ''[[Microsoft Active Accessibility]]''. |
|||
== Версии == |
|||
* ''[[Active Directory]]''. |
|||
* '''Win16''' — первая версия ''WinAPI'' для 16-разрядных версий ''Windows''. Изначально назывался ''Windows API'', позднее был ретроспективно переименован в ''Win16'' для отличия от ''Win32''. Описан в стандарте ''[[ECMA-234]]''. |
|||
* ''[[Active Server Pages]]''. |
|||
* '''Win32''' — 32-разрядный ''API'' для современных версий ''Windows''. Самая популярная ныне версия. Базовые функции реализованы в [[динамически подключаемая библиотека|динамически подключаемых библиотеках]] <code>kernel32.dll</code> и <code>advapi32.dll</code>; базовые модули [[Графический интерфейс пользователя|графического интерфейса пользователя]] — в <code>user32.dll</code> и <code>gdi32.dll</code>. ''Win32'' появился вместе с ''[[Windows NT]]'' и затем был перенесён в несколько ограниченном виде в системы серии ''[[Windows 9x]]''. В современных версиях ''Windows'', происходящих от ''Windows NT'', работу ''Win32 GUI'' обеспечивают два модуля: <code>csrss.exe</code> ([[процесс исполнения клиент-сервер]]), работающий в [[режим пользователя|пользовательском режиме]], и <code>win32k.sys</code> в [[режим ядра|режиме ядра]]. Работу же системы обеспечивает [[ядро операционной системы|ядро]] — <code>ntoskrnl.exe</code>. |
|||
* ''[[ActiveX]]''. |
|||
* '''Win32s''' — подмножество ''Win32'', устанавливаемое на семейство 16-разрядных систем ''[[Windows 3.x]]'' и реализующее ограниченный набор функций ''Win32'' для этих систем. |
|||
* [[Автоматизация]]. |
|||
* '''Win64''' — 64-разрядная версия ''Win32'', содержащая дополнительные функции ''Windows'' на платформах ''[[x86-64]]'' и ''[[IA-64]]''. |
|||
* [[Фоновая интеллектуальная служба передачи]] (''BITS''). |
|||
* ''[[Bluetooth]]''. |
|||
* ''[[CDO]]''. |
|||
* ''Certificate Enrollment Control''. |
|||
* ''Certificate Services''. |
|||
* ''Collaboration Data Objects''. |
|||
* ''[[Component Object Model]]'' |
|||
* ''[[COM Plus]]''. |
|||
* ''Common Controls''. |
|||
* Криптография. |
|||
* [[Debugging]] and [[Error Handling]]. |
|||
* Device I/O. |
|||
* Распределённая файловая система. |
|||
* ''[[DLL]]'', процессы и [[многопоточность]]. |
|||
* ''[[DNS|Domain Name System]]''. |
|||
* ''Dynamic Host Configuration Protocol'' (''[[DHCP]]''). |
|||
* Extensible Authentication Protocol ([[EAP]]). |
|||
* Extensible Markup Language ([[XML]]) и парсер [[MSXML]]. |
|||
* Fax Service. |
|||
* [[Групповая политика]]. |
|||
* ''[[HTTP]]''. |
|||
* ''[[ICS]]'' и ''[[ICF]]''. |
|||
* Image Color Management ([[ICM]]) |
|||
* Image Mastering API ([[Image_Mastering_API|IMAPI]]) |
|||
* Indexing Service |
|||
* Infrared Data Association ([[IrDa]]) |
|||
* Internet Authentication Service ([[Internet Authentication Service|IAS]]) |
|||
* Internet Connection Sharing and Firewall ([[ICSF]]) |
|||
* [[Internet Explorer]] |
|||
* Internet Information Services ([[IIS]]) |
|||
* [[Internet Protocol]] Helper ([[IP Helper]]) |
|||
* Interprocess Communications |
|||
* Lightweight Directory Access Protocol ([[LDAP]]) |
|||
* [[LSA]] Authentication |
|||
* [[LSA]] Policy |
|||
* Memory Management |
|||
* Message Queuing ([[MSMQ]]) |
|||
* Messaging Application Programming Interface ([[MAPI]]) |
|||
* [[Microsoft .NET Passport]] |
|||
* [[Microsoft Agent]] |
|||
* Microsoft Data Access Components ([[MDAC]]) |
|||
* Microsoft Interface Definition Language ([[MIDL]]) |
|||
* Microsoft Management Console ([[Microsoft Management Console|MMC]]) |
|||
* [[Microsoft Transaction Server]] (MTS) |
|||
* Multicast Address Dynamic Client Allocation Protocol ([[MADCAP]]) |
|||
* Multicast Group Manager |
|||
* National Language Support |
|||
* [[NetMeeting]] |
|||
* NetShell |
|||
* Network Load Balancing Provider |
|||
* Network Management |
|||
* Network Monitor |
|||
* Network Provider API |
|||
* [[OLE DB]] |
|||
* [[OLE DB]] Provider for Internet Publishing |
|||
* OnNow |
|||
* Open Database Connectivity ([[ODBC]]) |
|||
* [[OpenGL]] |
|||
* Password Filters |
|||
* [[PC Health]] |
|||
* Performance Monitoring |
|||
* [[Plug and Play]] и Universal Plug and Play |
|||
* [[Power Management]] |
|||
* Quality of Service ([[QoS]]) |
|||
* Real-time Communications ([[RTC]]) Client //ссылка ведет не на ту статью |
|||
* Remote Access Service ([[RAS]]) |
|||
* [[Remote Procedure Call]] (имеется в виду служба RPC Service) |
|||
* Removable Storage Manager ([[RSM]]) |
|||
* Routing and Remote Access Service ([[RRAS]]) |
|||
* Routing Table Manager Version 1 (RTMV1) |
|||
* Routing Table Manager Version 2 (RTMV2) |
|||
* Security Support Provider Interface ([[SSPI]]) |
|||
* Server Cluster API |
|||
* Server Data Objects ([[Server Data Objects|SDO]]) |
|||
* Service Security Attachments |
|||
* Setup API |
|||
* Shell (имеется в виду Explorer Shell) |
|||
* Side-by-side Assemblies |
|||
* Simple Network Management Protocol ([[SNMP]]) |
|||
* [[Smart Card]] |
|||
* Still Image |
|||
* Storage и Structured Storage |
|||
* Synchronization Manager |
|||
* System.DirectoryServices |
|||
* System Event Notification Service ([[SENS]]) |
|||
* System Restore |
|||
* [[Tablet PC]] |
|||
* [[Task Scheduler]] |
|||
* Telephony Application Programming Interface ([[TAPI]]) 2.2 |
|||
* Telephony Application Programming Interface ([[TAPI]]) 3 |
|||
* Telephony Service Provider Interface ([[TSPI]] и [[MSPI]]) |
|||
* [[Terminal Services]] |
|||
* Text Services Framework |
|||
* [[Unicode]] (и [[MSLU]]) |
|||
* Universal Description, Discovery, and Integration ([[UDDI]]) |
|||
* Video for Windows |
|||
* Windows Clustering |
|||
* Windows File Protection |
|||
* Windows [[GDI]] |
|||
* Windows [[GDI#GDI.2B|GDI+]] |
|||
* [[Windows Image Acquisition]] (WIA) |
|||
* [[Windows Installer]] |
|||
* Windows Management Instrumentation ([[WMI]]) |
|||
* Windows Multimedia |
|||
* [[Windows Sockets]] |
|||
* Windows System Information |
|||
* Windows User Interface |
|||
* Winlogon и [[Gina]] |
|||
* WinSNMP |
|||
== См. также == |
== См. также == |
||
* [[ |
* [[Linux kernel API]] |
||
* [[ |
* ''[[.NET Framework]]''. |
||
* [[Windows Runtime]]. |
|||
* [[Wine]] — свободная кроссплатформенная реализация Windows API. |
* [[Wine]] — свободная кроссплатформенная реализация Windows API. |
||
* [[ReactOS]] — свободная реализация операционной системы Windows. |
|||
* [[Window class]] |
|||
* [[svchost.exe]] |
|||
* [[WinMain]] |
|||
== Ссылки == |
|||
== Примечания == |
|||
* [http://msdn.microsoft.com/en-us/library/cc433218 MSDN Windows API] |
|||
{{примечания}} |
|||
* [http://msdn.microsoft.com/ru-ru/windows/bb980924.aspx Пакеты SDK] |
|||
* [http://programmersforum.ru/forumdisplay.php?f=4 windows api programming] — форум клуба программистов |
|||
* [http://www.codenet.ru/progr/delphi/WinAPI Краткий справочник функций WinAPI на русском языке] |
|||
== Литература == |
== Литература == |
||
Строка 148: | Строка 34: | ||
|оригинал = Windows NT/2000 Native API Reference |
|оригинал = Windows NT/2000 Native API Reference |
||
|ссылка = |
|ссылка = |
||
|место = |
|место = М. |
||
|издательство = [[Вильямс (издательство)|«Вильямс»]] |
|издательство = [[Вильямс (издательство)|«Вильямс»]] |
||
|год = 2002 |
|год = 2002 |
||
Строка 154: | Строка 40: | ||
|isbn = 1-57870-199-6 |
|isbn = 1-57870-199-6 |
||
}} |
}} |
||
{{Windows API}} |
|||
{{Инструментарии виджетов}} |
|||
== Ссылки == |
|||
[[Категория:Windows API|*]] |
|||
* [http://msdn.microsoft.com/en-us/library/cc433218 MSDN Windows API] |
|||
* [http://shgpi.edu.ru/pirogov/ruwiki/api/ API-программирование для 64-битовой Windows] |
|||
{{Инструментарии виджетов}} |
|||
{{Компоненты Microsoft Windows}} |
|||
[[ |
[[Категория:Windows API| ]] |
||
[[cs:Windows API]] |
|||
[[da:Windows API]] |
|||
[[de:Windows Application Programming Interface]] |
|||
[[el:Διεπαφή Προγραμματισμού Εφαρμογών Windows]] |
|||
[[en:Windows API]] |
|||
[[es:API de Windows]] |
|||
[[fa:ویندوز ایپیآی]] |
|||
[[fi:Windows API]] |
|||
[[fr:Windows API]] |
|||
[[id:Antarmuka Pemrograman Aplikasi Windows]] |
|||
[[it:Windows API]] |
|||
[[ja:Windows API]] |
|||
[[ko:윈도 API]] |
|||
[[lt:Windows API]] |
|||
[[ms:Windows API]] |
|||
[[nl:Windows API]] |
|||
[[pl:Windows API]] |
|||
[[pt:Windows API]] |
|||
[[ro:Windows API]] |
|||
[[uk:Windows API]] |
|||
[[zh:Windows API]] |
Текущая версия от 17:17, 15 июня 2024
Windows API (англ. 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.