Пользователю, который "включил компьютер, но ничего не работает", обычно не до смеха, особенно если он не может самостоятельно выяснить, что случилось, и устранить неполадку. Посмотрим на вещи реально: поскольку проблемы с загрузкой возможны при работе с любой операционной системой, то и Windows 2000 не является исключением из общего правила. Несмотря на изменение названия (Windows 2000 вместо Windows NT 5.0), эта операционная система базируется на технологии NT (этот факт отражен в заставке, появляющейся при запуске систем). Именно по этой причине в процессе загрузки Windows 2000 могут возникать некоторые проблемы, с которыми сталкивались ранее пользователи операционных систем Windows NT. Тем не менее стоит порадовать пользователей и хорошими новостями: система действительно стала надежнее, стабильнее, и, кроме того, в ее состав добавлены новые средства устранения как проблем с загрузкой, так и других неполадок.
Грамотный пользователь не должен пугаться, услышав слова "boot-сектор", "главная загрузочная запись", "POST" и т. п. Чтобы по возможности быстро и с минимальными потерями выйти из ситуации, при которой возникают проблемы с загрузкой Windows 2000, необходимо знать, как происходит процесс загрузки, от момента включения компьютера и до регистрации пользователя в системе.
Операционная система Microsoft Windows по своим возможностям не только намного превосходит MS-DOS, но и даже просто не сравнима с MS-DOS. Удобный, хорошо продуманный, а главное, стандартизованный для всех программ Windows пользовательский интерфейс интуитивно ясен и удобен для изучения. Поэтому после появления Microsoft Windows версии 3.0 всего за несколько лет произошла настоящая революция прикладного программного обеспечения персональных компьютеров - практически все основные программные продукты были переделаны для работы в среде Windows. При этом они приобрели свойства и возможности, недостижимые ранее из-за ограничений, накладываемых операционной системой MS-DOS.
Но к сожалению, программирование для Windows - гораздо более трудоемкое и кропотливое занятие, чем программирование для MS-DOS. Это связано, в первую очередь, с обилием новых возможностей. Для создания пользовательского интерфейса и выполнения других задач вам предлагается набор из более чем тысячи функций! Если же вы собираетесь работать с мультимедиа или другими дополнительными подсистемами Windows, набор функций еще больше расширяется.
Во второй части мы продолжим изучение программного интерфейса Windows. Будут рассмотрены ресурсы, стандартные (предопределенные) классы окон, а также диалоговые панели.
Первая глава посвящена ресурсам. Ресурсы - это данные, которые добавляются в файл загрузочного модуля приложения Windows и могут при необходимости загружаться в оперативную память. Расположение данных в ресурсах приложения позволяет достичь более эффективного использования памяти. Программы MS-DOS были вынуждены загружать, например, строки сообщений, в оперативную память или реализовывать собственную логику для их динамической загрузки из файлов. Для приложений Windows существует более элегантный способ, исключающий перегрузку памяти ненужными данными и избавляющий программиста от необходимости динамической загрузки данных из файлов.
Первая глава посвящена созданию меню в приложениях Windows. Практически в любом стандартном приложении Windows есть меню, расположенное под заголовком главного окна приложения, а также системное меню. Операционная система Windows имеет мощную поддержку меню, избавляя программиста от рутинной работы и полностью обеспечивает интерфейс между меню и пользователем.
Для создания меню чаще всего используется шаблон, подготовленный редактором ресурсов Resource Workshop или аналогичным инструментом. Этот шаблон хранится в файле загрузочного модуля приложения вместе с другими ресурсами. Вы также можете создавать меню динамически во время работы приложения, используя специально предназначенные для этого функции программного интерфейса Windows. Мы расскажем вам о различных способах создания меню, а также о том, как подключить к меню клавиатурный интерфейс. Вы сможете создать меню из графических изображений bitmap.
Windows 3.1 для программиста. Дополнительные главы
Так как приложения Windows работают не в гордом одиночестве (как программы MS-DOS), а в компании других приложений, у пользователя должна быть возможность передавать данные из одного приложения в другое или даже организовать постоянно действующий канал передачи данных между различными приложениями.
Для однократной или эпизодической передачи данных можно использовать универсальный буфер обмена Clipboard и соответствующие функции программного интерфейса Windows, которые мы опишем во второй главе.
Вы можете также организовать канал передачи данных между любыми приложениями, пользуясь механизмом динамической передачи данных DDE. Этот механизм, а также интерфейсная dll-библиотека DDEML будет описана в третьей главе.
Создание WIN32-приложений с учетом специфики 64-разрядной Windows
Сейчас Microsoft поставляет операционные системы Windows с тремя ядрами. Каждое ядро оптимизировано под свои виды вычислительных задач. Microsoft пытается переманить разработчиков программного обеспечения на Windows-платформы, утверждая, что интерфейс прикладного программирования (application programming interface, APT) у каждой из них одинаков. Это означает лишь то, что, научившись писать Windows-приложения для одного ядра, Вы поймете, как сделать то же самое для остальных.
Поскольку я объясняю, как писать Windows-приложения на основе Windows API, то теоретически все, о чем Вы узнаете из моей книги, применимо ко всем трем ядрам. На самом деле они сильно отличаются друг от друга, и поэтому одни и те же функции соответствующих операционных систем реализованы по-разному. Скажем так: базовые концепции одинаковы, но детали могут различаться.
Предлагаемая читателю книга явилась плодом долгих раздумий автора. Дело в том, что подавляющее большинство книг, посвященных программированию для Windows, написаны с таким расчетом, чтобы пользователь чуть ли не через пару прочитанных страниц мог начать программировать. Возможно, эта задача успешно выполняется. Но в этом случае возникает другая проблема: у многих программистов после получения первоначальных знаний, достаточных для создания окна и простых диалогов, отпадает желание двигаться дальше. Подавляющее большинство возможностей, предоставляемых системой, остаются вне поля зрения.
По моему мнению, такой подход к изложению основ Win32 API методологически неверен. Я решил пойти по другому пути: сначала рассказать читателю о том, какие возможности предоставляет Win32 API, и только потом научить его создавать пользовательский интерфейс. Тем самым я постараюсь достичь того, что программист будет понимать возможности системы. Это позволит ему создавать более интересные программы.
Серия туториалов "Путеводитель по написанию вирусов под Win32" предназначена для сугубо образовательных целей. По крайней мере именно это было целью перевода: предоставить людям информацию о формате PE-файла, работе операционной системы, таких полезных технологиях, как полиморфизм и многом другом, что может потребоваться кодеру в его нелегком пути к постижению дао программирования. То, как читатели используют эту информацию, остается на их совести.
Программа 25-1 схожа по конечному результату с простейшим приложением Windows, рассмотренным в гл. 6 (пример 6-1); в ней создается и выводится на экран главное окно приложения, для которого (в отличие от примера 6-1) задаются три дополнительных характеристики: местоположение окна на экране, его размер и цвет фона окна. Программа имеет типичную для OWL-приложений структуру и состоит из трех отчетливо выделенных частей: описания класса приложения и входящих в него функций, описания класса главного окна приложения с его функциями и, наконец, главной функции OwlMain(). Функции с таким именем передается управление при запуске приложения, и она, таким образом, должна обязательно присутствовать в любых OWL-приложениях, заменяя собой функцию WinMain() обычных приложений Windows или функцию main() приложений MS-DOS.
Win32 в машинных кодах
Мир машинных кодов для процессоров Intel IA-32 захватывающий и фантастический. Он предоставляет такие богатые возможности для творчества, что будет неудивительно, если через некоторое время станут проводить чемпионаты по спортивному программированию в машинных кодах, а лучшие творения кодеров представлять на выставках, как произведения искусства. Множество интересных находок было накоплено за прошедшие годы кодокопателями, среди которых есть как законные
Создание углового штампа чертежа и форматок для P-CAD 2002
Графический редактор P-CAD Schematic предназначен для разработки электрических принципиальных схем (файлы с расширением .sch) с использованием условных графических обозначений (УГО) элементов. При этом УГО ЭРЭ могут извлекаться из соответствующей библиотеки или создаваться средствами самой программы.
Операционные системы и программное обеспечение на платформе zSeries
z/OS представляет собой новейшую операционную систему, спроектированную и разработанную для серверов zSeries с учетом перехода на 64-разрядную архитектуру. Как представитель семейства MVS, z/OS унаследовала основные конструктивные элементы своей предшественницы OS/390, сохранив и развив ее базовые возможности. Поэтому рассмотрение архитектуры z/OS целесообразно начать с исторического обзора, раскрывающего особенности технологии MVS и основные этапы совершенствования ОС вместе с совершенствованием аппаратной платформы
Однако в начале введем несколько важнейших понятий, которые помогут сориентироваться тем читателям, которые только начинают знакомиться с мэйнфреймами IBM.
"Информация для размышления": изолированная структура (silo) - модное техническое словечко, обозначающее любые неэффективные и дорогие элементы в несовместимом программном обеспечении. Изолированные структуры являются "мишенью" для Web-сервисов. Можно сказать, одно из предназначений Web-сервисов - разрешение проблемы изолированных структур. Так почему же за последние три года Web-сервисам так и не удалось реализовать эту задачу? Именно таким вопросом задались аналитики исследовательской компании IDC. В своей работе "Web-сервисы: растущие опасения" они предлагают свое видение проблемы, высказывают предположения о дальнейшей судьбе Web-сервисов. Однако, прежде чем познакомить читателя с их точкой зрения, будет нелишним привести "краткую историческую справку".
Напомним, что практически три года назад Web-сервисы рассматривались как новое и перспективное направление информационных технологий. Тогда с ними были связаны большие надежды. Так, еще в марте 2002 года Журнал клуба знатоков DWH, OLAP, XML () рассказывал о прогнозах консалтинговой компании The Stencil Group (более подробно см. "Рынок Web-служб: прогнозы The Stencil Group"). Ее сотрудники прогнозировали, что на рубеже 2004-2005 годов должна начаться третья и последняя фаза развития Web-сервисов - этап их активного использования. Однако, сегодня можно констатировать, что развитие Web-сервисов происходят с явной задержкой
Фирмой Novell разработано несколько поколений сетевых операционных систем, начиная с ELS (Entry Level System) NetWare, которые могли обслуживать до 8 станций. Advanced NetWare 2.x уже являлась полноценной сетевой ОС, способной одновременно обслуживать до 100 пользователей сервера на базе 286+ PC, как выделенного, так и невыделенного. На современном этапе развития компьютерных технологий наибольший интерес представляют NetWare версий 3.12 и 4.1.
Версия 3.12 является "топ моделью" своего поколения, в которой исправлены ошибки предыдущих версий и "наведены мосты" к сетям нового поколения - 4.x. Версия 3.12 появилась позже 4.0 и унаследовала ее некотрые черты - поддержку CD-ROM, включение в поставку почтовых средств Basic MHS и First Mail, VLM-клиент, фрейм IEEE_802.2 и некоторые другие. В связи с более поздним появлением эти черты иногда ошибочно считают принадлежностью только NetWare 4.x.
Наряду с получением верхних и нижних оценок и оценок в среднем, часто используются так называемые амортизационные оценки.
Амортизационный анализ применяется при оценке времени выполнения корректной последовательности, состоящей из однотипных или разнотипных операций с некоторой структурой данных. Если верхнюю оценку времени выполнения одной операции умножить на , получим верхнюю оценку выполнения всех операций. Часто такая оценка бывает сильно завышенной. Иногда длительное время выполнения очередной операции влечет за собой малое время выполнения следующих операций. Более того, такая ситуация может создаваться искусственно, то есть при выполнении очередной операции мы можем готовить почву для более эффективного выполнения следующей. Поэтому возникает задача изучения асимптотического поведения гарантированной оценки для среднего времени выполнения одной операции.
При амортизационном анализе определяется некоторая так называемая учетная (амортизационная) стоимость одной операции, которая может быть как больше, так и меньше реальной стоимости конкретной операции. Но при этом для любой корректной последовательности операций фактическая суммарная длительность всех операций не должна превосходить суммы их учетных стоимостей.
Профессия программиста удивительна и уникальна. Давно уже настало время настоящего философского осмысления этой сферы человеческой деятельности, действительно обладающей какими-то особенными, для людей непосвященных чуть ли не магическими, свойствами. Если не брать в рассмотрение коммерческую сторону, то можно сказать, что чужих людей в этой области профессиональной деятельности нет. В чем же ее особенность? Наиболее точно по этому поводу высказался Фредерик Брукс в главе «Пятьдесят лет удивления, восхищения и радости» своей книги «Мифический человеко-месяц, или как создаются программные системы>: «Немногим Бог дает право зарабатывать на жизнь тем, чем они с радостью занимались бы по собственной воле, по увлечению. Я благодарен судьбе». И далее: «Область связанных с компьютерами знаний претерпела взрыв, как и соответстующая технология. Будучи аспирантом в середине 50-х, я мог прочесть все журналы и труды конференций. Я мог оставаться на современном уровне во всей научной дисциплине.
Вот... поговорим теперь о конкретном. О рабочем столе. Что на нем должно быть и как за ним работать.
На столе может стоять абсолютно все что угодно. Пепельницы, пиво, водка, мониторы, клавиатуры, мыши. Компьютер на столе держать необязательно - у одного моего приятеля материнская плата вообще была привинчена к стене, поверх обоев.
Компьютер может быть любым. Конечно же, лучше, когда он быстрый, но это не обязательно. Для создания хорошей страницы это совершенно не обязательно. Неплохо бы иметь и цветной монитор, но если его нет, это не может быть причиной для бездействия. Дмитрий Кирсанов, например, очень долго работал за монохромным монитором. Это не помешало ему стать автором популярных цветных страниц. (Правда, когда он купил-таки цветной экран, то пришел в ужас от раскраски собственных сайтов.)
При создании страниц я рекомен do you удержаться от использования таких программ как FrontPage(r), HomePage(r), PageMill(r), SiteMill(r) и т.п. Если вы одной рукой мешаете в кастрюле борщ, другой утомительно замачиваете белье, а третьей собираетесь делать сайт, то это ваши программы (они для домохозяек).
Персональные компьютеры (ПК или ПЭВМ) предназначены для тех, кто хочет выполнять на своем собственном компьютере собственные приложения и поддерживать собственные персональные файлы, не прибегая к услугам мини-ЭВМ или больших машин, полностью контролируемых отделами информационных систем. Вскоре после их появления в начале 80-х ПК стали объединяться в сети, что позволило совместно использовать файлы и ресурсы, такие как принтеры. К середине 80-х сети стали
настолько крупными и сложными, что управлять ими снова стали отделы информационного обеспечения. Сегодня сети - это далеко не простые и легко обслуживаемые устройства. Они требуют защиты, наблюдения и обслуживания. Кроме того, сети часто выходя за рамки одного учреждения и становятся глобальными. Это уже требует квалифицированного персонала другой сферы - специалистов по телефонным сетям, микроволновой или спутниковой связи.
Появление в 80-х годах персональных компьютеров (ПК) и локальных сетей ПК самым серьезным образом изменило организацию корпоративных вычислений. Однако и сегодня освоение сетевых вычислений в масштабе предприятия и Internet продолжает оставаться не простой задачей. В отличие от традиционной, хорошо управляемой и безопасной среды вычислений предприятия, построенной на базе универсальной вычислительной машины (мейнфрейм) с подсоединенными к ней терминалами, среда локальных сетей ПК плохо контролируется, плохо управляется и небезопасна. С другой стороны, расширенные средства сетевой организации делают возможным разделение бизнес-информации внутри групп индивидуальных пользователей и между ними, внутри и вне корпорации и облегчают организацию информационных процессов в масштабе предприятия. Чтобы ликвидировать брешь между отдельными локальными сетями ПК и традиционными средствами вычислений, а также для организации распределенных вычислений в масштабе предприятия появилась модель вычислений на базе рабочих групп.
Написание ассемблерных программ требует знаний организа ции всей системы компьютера. В основе компьютера лежат понятия бита и байта. Они являются тем средством, благодаря которым в компьютерной памяти представлены данные и команды. Программа в машинном коде состоит из различных сигментов для определения данных, для машинных команд и для сигмента, названного стеком, для хранения адресов. Для выполнения ариф метических действий, пересылки данных и адресации компьютер имеет ряд регистров. Данная глава содержит весь необходимый материал по этим элэментам компьютера, так что вы сможете продвинутся к главе 2 к вашей первой программе на машинном языке.
Электронная почта - краткое руководство пользователя
Одним из наиболее используемых сервисов Интернет является электронная почта (ЭП). Редко встретишь "визитку" без поля E-mail (произносится "е-майл" или "и-мэйл", кому как больше нравиться, сокращение от Electronic Mail). Удобство использования и скорость доставки сообщения - два главных козыря, которые позволили этому сервису победить "бумажную почту". Прочитав это руководство, вы сможете воспользоваться ЛЮБОЙ программой чтения ЭП, для этого не надо изучать каждую программу, для этого нужно знать принципы работы, их я вам опишу. Также я попытаюсь вам рассказать об основных возможностях и отличиях современных пакетов программного обеспечения для работы с ЭП.
Информационные технологии для пользователей библиотеки
Как известно, компьютер выполняет действия в соответствии с предписаниями программы, созданной на одном из языков программирования. При работе пользователя на компьютере часто возникает необходимость выполнить операции с прикладной программой в целом, организовать работу внешних устройств, проверить работу различных блоков, скопировать информацию и т.п.
По существу, эти операции используются для работы с любой программой, воспринимаемой как единое целое. Поэтому целесообразно из всего многообразия операций, выполняемых компьютером, выделить типовые и реализовать их с помощью специализированных программ, которые следует принять в качестве стандартных средств, поставляемых вместе с аппаратной частью.
Программы, организующие работу устройств и не связанные со спецификой решаемой задачи, вошли в состав комплекса программ, названного операционной системой. Функции операционной системы многообразны, постоянно расширяются за счет введения новых программ и модификации старых.
Данный раздел содержит некоторые общие рекомендации относительно выбора файловых систем: FAT, FAT32 или NTFS. Подробно свойства этих систем рассматриваются в главе 4 "Дисковые тома и файловые системы" (рекомендуется предварительно ознакомиться с этой главой, если вы не уверены в своем выборе).
На компьютере, работающем под управлением Windows 2000, Windows XP или одной из операционных систем семейства Windows Server 2003, можно применять любую из упомянутых выше файловых систем. Кроме того, разные файловые системы можно использовать одновременно на разных дисках или в разных разделах.