Автор: Роман Панышев (irrona)


Основные понятия

      С 1991 года операциаонная система Windows, созданная компанией Microsoft сменила несколько версий. За это время она выпускалась и для 16-разрядных процессоров и для 32-разрядных. А сегодня уже появились версии Windows для работы с 64-разрядными процессорами. Менялся не только дизайн системы, но и принципы ее внутренней архитектуры. Неизменным по сей день остается одно - наличие динамических библиотек (DLL), являющихся основными поставщиками функций (Application Programming Interface - API) для работы системы и приложений. С самого начала необходимо усвоить один важный момент: API - не то же самое, что операционная система, но конкретный API можно использовать только на определенных версиях Windows.

      Поскольку 32-разрядные процессоры сегодня еще имеют наибольшее "хождение". На мой взгляд это происходит не столько из-за отсутствия достаточного количества приложений и драйверов оборудования, сколько из-за привычки основного большинства программистов создавать приложения для 32-битных систем. Соответственно и я в данном цикле статей основной упор буду делать на 32-разрядный API и 32-разрядные системы Windows (в основном начиная с версии Windows 2000).

      За время существования 32-разрядной Windows функции API не изменились, меняется лишь их количество. Для удобства разработчиков Windows, а может это они позаботились о программистах, пишущих программы для Windows, все функции API разбиты на определенные категории и находятся в соответствующих библиотеках динамической компоновки (DLL). Вот далеко не полный перечень таких библиотек:

Библиотека Описание
kernel32.dll Системные функции низкого уровня.
В этой библиотеке находятся функции управления памятью,
задачами, распределения ресурсов и т.д.
user32.dll Функции, управляющие работой Windows.
В этой библиотеке находятся функции для работы с сообщениями,
меню, указателями мыши, курсорами, таймерами
и большинство других функций, не связанных с выводом на экран.
gdi32.dll Библиотека интерфейса графических устройств (GDI).
Содержит функции, связанные с выводом на устройства. В ней находится
большинство функций рисования, работы с контекстами устройств,
метафайлами, координатами и шрифтами.
comdlg32.dll
lz32.dll
version32.dll
Эти библиотеки обеспечивают дополнительные возможности, в том числе
поддержку стандартных диалоговых окон, сжатия файлов и контроля версий.
advapi32.dll Библиотека содержит функции для работы с реестром Windows и
файлами инициализации (INI).
wininet.dll В данной библиотеке содержатся функции для использования
Internet и FTP.
netapi32.dll Сетевые функции Windows
crypt32.dll
cryptdll.dll
cryptnet.dll
В библиотеках содержатся криптографические функции
и функции для работы с крипто-провайдерами.
ntdll.dll Иногда в других библиотеках API функции всего лишь
объявлены, а реализованы в данной библиотеке, но с другим именем.
comctl32.dll В этой библиотеке реализован новый (усовершенствованный)
набор управляющих элементов Windows, в числе которых - иерархические списки и
улучшенные текстовые поля.
mapi32.dll Содержит функции для работы с электронной почтой.
odbc32.dll Это одна из dll, реализующих архитектуру
ODBC (Open Database Connectivity). Функции предоставляют API для работы с базами данных.
winmm.dll Обеспечивает доступ к мультимедия.

      Эти DLL находятся в системной папке Windows. Есть API функции, которые были созданы во времена Windows 9x и которые не работают на операционных системах семейства Windows NT. Но, по своему опыту могу сказать, что чаще возникает обратная ситуация - когда использованная при написании приложения API функция прекрасно работает на Windows 2000 и выдает ошибки при запуске приложения на Windows 9x. На такие особенности я, по сложившейся в MSDN традиции, буду указывать отдельно.

      Все примеры к статьям написаны с использованием практически голого API. Исключение составляют лишь инструкции процессора, связанные с пересылкой данных. Поэтому портировать данный код на другие ассемблерные языки, либо на С или С++, думаю не составит особой сложности.

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


Предыдущая страница   Следующая страница


© 2005 ironahot@idknet.com - при использовании статей просьба делать ссылку на автора