Если вы впервые учитесь программированию под Windows и используете для этого Windows 95, то вы — счастливый человек. Вы даже не представляете себе, как вам повезло. В самом деле, основной урок, который вы извлечете из этой главы, можно сформулировать кратко следующим образом: при работе с памятью или файлами вам редко (а, может быть, и никогда) придется использовать что-либо кроме функций из стандартной библиотеки времени выполнения языка C.
Причина, по которой рекомендуется использовать библиотечные функции C (такие как malloc, free, fopen, fclose и т. д.), состоит в том, что они просты и понятны, и, кроме того, вероятно, вам хорошо знакомы. Но самое главное заключается в том, что у вас не возникнет никаких проблем при использовании этих функций в программах, написанных для Windows 95. Как будет показано ниже, так было далеко не всегда.
Управление памятью и файловый ввод/вывод являются очень старыми услугами, которые предоставляет программам операционная система (например, старая добрая неграфическая MS DOS). Третьей услугой является подсистема выполнения, которая в MS DOS поддерживала простейшую загрузку из файла в память и запуск на выполнение одной задачи. Кроме этих трех услуг, четвертой важной, может считаться отслеживание даты и времени.
Набор системных услуг, поддерживаемых ядром Windows 95, гораздо более широк. Он включает в себя динамическое связывание (оно будет рассмотрено в главе 19), многозадачность, многопоточность и синхронизацию потоков (глава 14), связь между процессами (главы 16, 17 и 20), а также некоторые другие услуги, которые не включены в данную книгу.
Хотя использовать библиотечные функции языка C удобно, возможно, в принципе, написание программы для Windows 95 вообще без использования этих функций. Каждая библиотечная функция, которая требует обращения к операционной системе (такие как функции управления памятью или файлового ввода/вывода) имеет соответствующую, и, как правило, более развитую и гибкую функцию операционной системы. Какой путь выбрать — использование функций библиотеки языка C или функций операционной системы — дело ваше. Можете испробовать оба варианта и сравнить.
Управление памятью: хорошо, плохо
и ужасно
Для того чтобы увидеть, насколько далеко продвинулась вперед Windows за последние десять лет, достаточно интересно и полезно ознакомиться с минимальными требованиями к компьютеру для работы Windows 1.0 выпуска ноября 1985 года: 320 Кбайт памяти, операционная система MS DOS 2.0 и выше, два дисковода, графическая видеокарта. Эти требования отражают тип компьютера, на котором в то время работало большинство пользователей. Оглядываясь назад, можно сказать, что Microsoft добилась совершенно уникального результата, заставив Windows работать в такой ограниченной среде. Управление памятью в Windows 1.0 было