- •§ 1.2. Основы программирования в ос Windows
- •1.2.1. Принципы взаимодействия ос Windows с прикладными программами
- •1.2.2. Типы данных в Windows
- •1.2.3. Графический и консольный интерфейс
- •1.2.4. Создание элементарного графического окна
- •Int nCmdShow)
- •Общие черты.
- •§ 1.3. Принципы разработки динамических библиотек
- •1.3.1. Основные положения
- •1.3.2. Главная функция DllMain()
- •If(bAll WentWell)
- •1.3.3. Экспортирование функций из dll
- •Int sharedInts[10] ;
§ 1.2. Основы программирования в ос Windows
Рассмотрев в предыдущем параграфе многообразие операционных систем для персональных компьютеров, можно сделать вывод, что программирование в конкретной операционной системе процесс настолько сложный, основанный на специфических особенностях данной ОС, что переход программиста на новую операционную систему практически соизмерим с переходом на новый язык программирования. Поэтому в настоящее время каждый программист является узким специалистом в области програм-мирования в конкретной ОС, и даже более – в конкретном узком направлении разработки для данной ОС. При этом общие принципы построения современных ОС существенно не отличаются друг от друга. Учебное пособие посвящено особенностям программирования базовых элементов операционных систем и поскольку, в пределах курса невозможно качественно рассмотреть особенности технологий разработки системных элементов для многих ОС, сосредоточимся в практическом плане на операционных системах, получивших в настоящее время наибольшее распространение – ОС, разработанных компанией Microsoft – Windows линеек 9x и NT (2000, XP). Таким образом, в пособии первоначально будут рассматриваться особенности построения базовых элементов основных современных операционных систем, а далее в более практическом плане особенности разработки этих технологий в ОС Windows. В качестве базового языка программирования выбран язык С++ и инструментальная система Visual C++ по следующим причинам:
ранее при изучении основ программирования в качестве базового был выбран именно этот язык и инструментальная система, таким образом время, выделенное на изучение курса максимально будет потрачено на изучение основ программирования базовых элементов ОС, а не на изучение нового языка;
операционные системы семейства Windows сами были созданы на языке программирования С/С++, поэтому программирование их элементов на данном языке в наименьшей вызовет проблемы совместимости этих элементов;
большая часть документации, публикаций и других материалов о программировании для Windows ориентирована на использование C++, фактически вся документация Microsoft рассчитана на программистов, знакомых именно с этим языком программирования, который в настоящее время "de facto" стал системным для многих ОС, в том числе и для Windows;
в настоящее время большая часть системных программистов во всем мире работает именно на С/С++.
Вместе с тем, в рабочей среде Windows используются многие другие популярные среды разработки, В частности, получившая в последнее время широкое распространение, среда программирования Java (в первую очередь, при программировании для Internet). Компания Borland поддерживает собственную среду Delphi, которая основана на языке Pascal (существует также C++ Builder, которая использует похожий подход к созданию приложений, но ориентирована на использование C++). Не стоит забывать и про Visual Basic (VB). Начиная с пятой версии, этот продукт поддерживает полноценную компиляцию, технологию ActiveX, а также поддерживает прямое обращение к API.
В курсе лекций, посвященных программированию, мы уже научились создавать различные приложения в среде Windows. В частности научились создавать приложения на базе однооконного и многооконного интерфейса, обрабатывать сообщения клавиатуры и мыши, создавать различные ресурсы, предоставляемые ОС, использовать цветовые палитры, создавать подключаемые библиотеки и т.д. Все это поможет рассмотреть программирование базовых системных элементов ОС в более качественной форме. Первоначально кратко рассмотрим основы программирования в ОС семейства Windows, общие черты и различия Windows линеек 9x и NT.
