Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Практикум программирования на С++ под Windows #9A


Служба Рассылок Subscribe.Ru проекта Citycat.Ru

Практикум программирования на C++ под Windows
comp.soft.prog.cppwin
Выпуск #9A
02/11/2000

*** ИСТОРИЯ WINDOWS API *************************************************

Данный текст можно найти на http://rusdev.newmail.ru/winapi/winapihist.html
Оригинал статьи находиться на http://www.iseran.com/Win32/FAQ/history.html

1983 (?)Объявлена Windows
(т.е. работа над ней началась). В основном базировалась на идеях Xerox Parc и Mac, хотя Lisa также оказала некоторое влияние.
1984 Начата работа на Word for Windows 1.0
Ноябрь 1985: Выпущена Windows 1.0
Окна не перекрывающеися (для простоты реализации механизма отсечения). Работа в реальном режиме (используется объем памяти до 1MB). Программы выполняются в общем адресном пространстве с кооперативной многозадачностью -GetMessage() позволяет переключать задачи -GlobalAlloc() хэндлы ссылаются на глобальгую таблицу хэндов, т.е размещенные буфера могут находиться где угодно. Окна диалога и обработку их событий необходимо полностью делать самому.Низкоуровневыe операции выполняются с помощью прерываний DOS.
Инструменты разработки - Microsoft C и Assembler, выполняются в среде DOS и для запуски приложения надо сначала загрузить Windows. Отладка требует наличия второго монитора и видеокарты.
Апрель 1987 Windows 2.0
Окна теперь могут перекрываться. На коммерческой основе поставляется SDK в качестве дополнения к MS C 5.0. Облегчается создание окон диалога - встроенная возможность создания и обработки.
"Убойное приложение" - Excel. Практически это Windows поставляется в составе с Excel, так как занятый участок рынка еще очень мал
В это же время объявляется о запуске проекта MS OS/2
1988 Опубликованна книга "Programming Windows". Чарльза Петцольда
Теперь программисты могут писать работающие программы. Служба технической поддержки Microsoft помогает бесплатно решать проблемы, связанные с созданием ПО.
1988 Выпущена OS/2 1.1 с Presentation Manager
Это _как_ Windows, но работает в защищенном режиме (т.е. требует 286 компьютера). Начало координат располагается слева внизу. Введен формат Device Independent Bitmap (BMP/DIB).
1988? Windows/286 + /386
Windows разивается до вересии 2.04, затем разделяется на Windows/286 и Windows/386. Последняя поддерживает несколько DOS окон. Программы могут адресовать память свыше 1MB через LIM/EMS BIOS интерфейс. Каждая софтина работает со своими собственными буферами в HMA, поэтому разделяемая память должна быть размещена до 640KB с установленным флагом GMEM_LOWER. Производительность программистов резко увеличивается, так как теперь можно запускать DOS компилятор из Windows.
Ноябрь 1989: Наконец выходит в продажу Winword 1.0: прошло всего 4 года после той даты, на которую его выпуск был намечен первоначально
Май 1990 : Выходит в продажу Windows 3.0
Это первая версия Windows, которая получила широкое признание. Она работает в 3 режимах -реальном (режим 8086 процессора как в Windows 2.x), защищенном ('286) и расширенном ('386, с DOS окнами и виртуальной памятью). Игнорируя реальный режим,16 битный- Windows API теперь ориентированн на сегментную модель памяти. Хэндл, возращаемый GlobalAlloc(), теперь возвращает что-то похожее на сегментный дескриптор 286 процессора. Так как трансляция сегмент:смещение в физическое положение в памяти выполняет CPU, то теперь приложения могут обращаться с памятью без опасений.
Большое количество приложений аварийно завершаются с сообщением "Unrecoverable Application Error", так как они пытаются записать или прочитать из памяти, которой у них нет.User и GDI хэндлы все еще индексируют структуры данных внутри сегментов данных соотвествующих DLL; функции OS, которые используют эти хэндлы, должны доверять вызывающим программам - жертвуя таким образом надежностью ради скорости.
Формат OS2 bitmap адоптирован для хранения изображений, и из-зи этого битмапы храняться "сверху вниз" в отличие от всего остального в Windows. Документация по SDK теперь состоит из 3 книг.
В конце 1990 (?) поступает в продажу Microsoft C 6.0
Все еще являясь DOS приложением, теперь он содержит встроенную IDE, в которой при нажатии F1 появиться справка по ключевым словам и сообщениям об ошибках. Это фундаментальное улучшение на тот момент.
В концеe 1990: пути MS и IBM расходяться.
IBM хочет продолжать развитие OS/2 и использовать свои права на нее, чтобы уйти с рынка клонов. MS хочет увеличить свои доходы за счет продажи своей ОС всем подряд и предоставить удобный способ миграции с DOS. Они соглашаются идти своими путями.
Конецe 1990/Начало 1991 Windows for Pens и Multimedia Windows
Это специальные версии Windows 3.0. Так как мультимедийные расширения не являются частью стандартной поставки Windows, то добавляется новая DLL - MMSYSTEM.DLL-. Вот почему вы до сих пор должны прилинковать MMSYSTEM.LIB для использования функций типа PlaySound()
Весна 1991: выходит в продажу Borland C++
Являясь первым компилятором Borland, который генерирует Windows код, эта DOS IDE становиться основным C++ компилятором для PC. Это не только сверхбыстрый компилятор, но и его отладчик работает без второго монитора. Потом выходит Borland C++ 2.0, который поддерживает более продвинутый C++.В качестве первого реального соперника продуктов Microsoft, он и его последователи стали той силой, которая подтолкнула создание семейства Visual C++.
Лето 1991 (?) Visual Basic 1.0
Одна из первых RAD сред для Windows: примитивный, но вполне подходящий для создания прототипов и некоторых приложений. VBX архитектура стала самой успешной моделью программных компонентов.
Конец 1991: Windows 3.1
Мультимедийные расширения становяться частью стандартной поставки , OLE 1.0 (очень труден для программирования) и исключение процессора #13 вызывают окно диалога "General Protection Fault". Toolhelp.DLL позволяет написание более продвинутых отладчиков.Хендлы User и GDI все еще ссылаются на структуры данных в сокрытых участках данных DLL, но теперь функции, которые принимают их в качестве параметров, проверяют их правильность. Стандартные окна диалога для открытия/сохранения файлов, выбора цвета и печати деляют эти стандартные задачи гораздо проще.
Небольшие изменения существующих функци (например MoveTo() расширяется в MoveToEx()), заголовочный файл "windowsx.h" содержит более строгую проверку типов и макросов разбивки сообщений. Все это предназначено для упрощения перехода к Win32, когда придет время.
Конец 1991: OWL 1.0
Это дополнение к Borland C++: библиотека классов, которая основывается на нестандартных расширениях языка C++ для привязки сообщений к членам класса и содержит smalltalk-подобную обертку вокруг некоторых стандартных Windows элементов (например вокруг самих оконо, но не вокруг контекстов устройства или GDI объектов)
1991? Quick C for Windows
Это предшественник всех Visual продуктов: написанная для Windows IDE для C приложений. Выход ограничен консольными приложениями, но основы сегодняшних продуктов были заложены в нем.
Начало 1992: Borland C++ 3.0
Первая из основанных на Windows IDE. OWL 1.0 поставляется в составе стандартной поставки. Достаточная глючная, но версия 3.1 была уже достаточна стабильная и быстрая.
Середина 1992 (?): Microsoft C/C++ 7.0
Все еще основанная на DOS IDE, и это компилятор C++ Microsoft, который поставляется с первой версией библиотеки классов MFC. Как и 1.0 все написание кода выполняется вручную, но эта библиотека еще и добавляет объектную оболочку для GDI объектов.
Середина 1992 (?) OLE2.0 бета
Это первая версия OLE, которая использует COM в качестве своей основы.
Конец 1992: Первоначальный Win32 API опубликован вместе с выпуском первой бета версии NT.
Появдяются первые копии NT, встроенный в них API мало отличается от классического Windows API, так что перенос программ выполняется достаточно просто - особенно если вы пользовались STRICT макросами.Анонсирован Win32s - похоже, что Win3.1 была изначально разработана с возможностью распознавать 32-битные приложения и передавать их выполнение соотвествующим VxD.
Win32 в NT предоставляет возможности для вытесняющей многозадачности, отделное адресное пространство для отдельных процессов и другие достаточно продвинутые возможности ОС. Хендлы памяти теперь указывают на адреса внутри памяти конкретного процесса, за исключением специальных ситуаций, когда ОС обрабатывает случаи, когда приложения считают, что они находяться в одной памяти..
Апрель 1993: Выпущен Visual C++ 1.0
Первый компилятор C++, который упрощает написание кода с помощью волшебников для создания приложений и обработки диалоговых окон. Хотя он и не является таким "Visual" каким является Visual Basic, он все равно более удобнее,чем что-либо еще. При разработке все равно используется старый компилятор командной строки, так что это довольно громоздкая среда разработки. Поддерживаются VBx расширения, что приводит к тому, что C++ приложения довольно долго приходится рихтовать, чтобы заставить выглядеть как VB среда.

Этот продукт также заслуживает упоминания, как последняя среда разработки C/C++ от Microsoft, которая поставлялась с полной печатной документацией.

Лето 1993: Выходит NT 3.1
Поддерживает только версия OLE 1.0, сама ОС достаточно медленная и громоздкая - требуется от 12 Мб ОЗУ, что стоит достаточно больших денег по тем временам. Она находит применение в качестве сервера, в основном за счет неограниченной клиентской лицензии. Кроме x86 CPUs, NT поддерживает MIPS и Alpha. В скоре выпускается Visual C++ для Windows NT - это 32-битная версия VC++1.0 IDE .
Ноябрь 1993: Выходит Visual C++ 1.5.
Он добавляет поддержку OLE2 в библиотеку классов и оказывается последним 16-битным компилятором Microsoft.
Декабрь 1993: билд Chicago M5
Раздается бесплатно на Anaheim Windows Professional Developers Conference. Это первая бета версия того, что станет позднее Windows 95, и хотя она уже выполняет 32-битные приложения в вытесняющем режиме многозадачности, пользовательский интерфейс значительно изменится в релизе.
Начало 1994: Выходит Borland C++4.x
Мало работоспособный в начале, он является очень амбициозным проектом, так как может генерировать 16 или 32 битный код, содержит "Экспертов" ( аналог "Волшебников" в Visual C++). OWL 2.x практически полностью переписанная библиотека классов, так что приложения, написанные с использованием OWL 1.0 требуют коренной переделки.
Лето 1994: Выходит NT3.5
Эта версия более оптимизированная по размеру и производительности, так что она получает большую популярность. Содержит 32-битный winsock стек, что является первой главной адаптацией Microsoft основанных на tcp/ip Internet протоколов.
Конце 1994: Выходит Visual C++ 2.0
32-битная IDE, которая генерирует только 32-битный код, является частью стратегии, призванной принудить разработчиков перейти на Win32 API. Написание Win16 приложений требует использования VCC1.5 компилятора, который поставляется в составе дистрибутива. Начало продаж 32-битного компилятора до выхода главной 32-битной Windows было "убойным" предложением. Пока Windows 95 проходила этапы бета-тестирования, разработчики могли уже создавать приложения для нее.
Начало 1995: Выходит Ole Control Developer Kit
Это дополнение к VCC2.x, которое используется для перевода VBX'ов в 16- и 32-битный мир OCX'ов.
Август 1995: Выходит Windows 95
Наиболее успешный выпуск ПО на сегодняшний день. Win32 становится главным API. Win32 API теперь содержит расширения для новых элементов управления и COM интерфейсы для обращения к оболчке. Другие части Win32 не реализованны.
Сентябрь 1995: Windows NT3.51
Windows NT3.51 выпускается, чтобы обеспечить поддержку некоторых новых элементов управления и становится первой версией NT, которая работает на Power PC.До сих пор называемая самой стабильной версией NT для серверов, многие ориентированные на потребителя возможности следующих версий - DirectX, Explorer shell, интеграция Web браузера- просматриваются уже сейчас.
Конец 1995: Выходит DirectX 1.0
DirectX API - развивающийся быстрее, чем ОС- разработан, чтобы сделать Windows идеальной платформой дял игр. Изначально направленный на обеспечение железо-независимого доступа к буферу фреймов и звуковым картам, сегодня этот API становится основой для 3D и приложений, связанных с трансляцией TB.
Декабрь 1995: Объявлен ActiveX
Объявление Microsoft Internet Strategy предварило возможность IE3 загружать OCX и показало то, что поддержка Internet станет важной частью ОС.
Лето 1996: NT4.0
Это улучшенная NT с интерфейсом Windows 95 и большинством DirectX API. На низком уровне возможно использование Winsock 2 и Distributed COM для создания продвинутых сетевых приложений. API получили объекты Timer, которые имеют важное значение для приложений, реализующих свойство OnNow и обрабатывающих ситуации с нехваткой энергии. MIPS и PowerPC поддержка прекращена: Alpha становится единственной поддерживаемой не-x86 платформой.
Лето 1996: Выпущен IE3.0
Опциональной расширении для Windows, расширяет рабочий стол новыми элементами управления, содержит web browser OCX и Wininet.DLL
Конец 1996: Объявлена Windows CE 1.0
Доступность Win32 на palmtop компьютерах и встраиваемых продуктах была объявлена на Comdex в 1996.
Сентябрь 1997: Выходит IE4.0
Еще одно расширение Win95 и NT4, на этот раз достаточно сильное, добавляет новые элементы управления, Distributed COM (для '95) и OLE Automation интерфейс для многих сервисов интерфейса.
Июнь 1998: Выходит Win98
IE4 встроен, переделка ядра для поддержки новых технологий связи и улучшенной управление питанием.
Август 1998: Выходит NT5 Beta 2
Первая стабильная бета версия Windows БУДУЩЕГО
Сентябрь 1998: Visual Studio 6.0
Улучшенный C++ IDE/compiler, более легкая разработка под web, не стандартный вариант Java.
Март 1999: Выходит IE5
Некоторые изменения в Wininet.dll, но не гобальные, так что IE4.1 было бы более оправданным наименованием.
Апрель 1999: Выходит NT5 Beta 3
COM+, многие вещи стали намного более стабильными
Май 1999: Win98 SE
Очень мало изменений по сравнению с Win98.0, но более похожее поведение на NT5, чем прежде.
Февраль 2000: Windows 2000
Наиболее значимая версия Windows после Win95. Windows 2000 окончательно разрастается.

Краткое дополнение

Ну что же, к этому можно добавить выход Windows Millenium и объявление платформы .NET (лето 2000).


*************************************************************************
Количество подписчиков: 6269
Архив Рассылки

Никита Зимин
Nikita_Zeemin@mail.ru



http://subscribe.ru/
E-mail: ask@subscribe.ru

В избранное