- •Фролов а.В., Фролов г.В. Библиотека системного программиста
- •Программирование для Windows 95 и Windows nt Введение
- •Поддержка сети Internet
- •Язык моделирования виртуальной реальности
- •Игровое sdk
- •Набор ocx объектов
- •Как связаться с авторами
- •Благодарности
- •Ввод/вывод
- •Константы
- •Распределение памяти
- •Операторы new и delete
- •Перегрузка имен функций
- •Задание параметров функции по умолчанию
- •Встраивание
- •Ключевое слово this
- •Разграничение доступа к элементам класса
- •Методы, входящие в класс
- •Конструкторы и деструкторы класса
- •Методы, не изменяющие объекты класса
- •Статические методы
- •Общие члены объектов класса
- •Дружественные функции и дружественные классы
- •Дружественные функции
- •Дружественные классы
- •Наследование
- •Единичное наследование
- •Множественное наследование
- •Разграничение доступа к элементам базового класса
- •Переопределение методов базового класса
- •Виртуальные методы
- •Абстрактные классы
- •Структуры
- •Шаблоны
- •Шаблоны в mfc
- •Перегрузка операторов
- •Обработка исключительных ситуаций
- •Операторы try, throw и catch
- •Листинг 1.1. Файл Exception.Cpp
- •Универсальный обработчик исключений
- •Тип исключения
- •2. Введение в mfc
- •Классы библиотеки mfc
- •Самый базовый класс mfc (класс cObject)
- •Основа структуры приложения (класс cCmdTarget)
- •Подзадачи приложения (классы cWinThread и cWinApp)
- •Документ приложения (класс cDocument)
- •Шаблон документов (классы cDocTemplate, cSingleDocTemplate и cMultiDocTemplate)
- •Окна (класс cWnd)
- •Исключения (класс cException)
- •Массивы, списки и словари
- •Файловая система (класс cFile)
- •Контекст отображения (класс cdc)
- •Объекты графического интерфейса (класс cGdiObject)
- •Меню (класс cMenu)
- •Базы данных (классы для работы с базами данных)
- •Синхронизация задач приложения (класс cSyncObject)
- •Сокеты (классы cAsyncSocket и cSocket)
- •Классы, не имеющие базового класса
- •Простые классы
- •Архивный класс (класс cArchive)
- •Информация о классе объекта (структура cRuntimeClass)
- •Отладка приложения (классы cDumpContext, cMemoryState)
- •Печать документа (класс cPrintInfo)
- •Первое приложение mfc
- •Окно Project Workspace
- •Листинг 2.1. Файл mfHello.Cpp
- •Средства ClassView
- •Добавление к классу нового метода
- •Добавление к классу нового элемента данных
- •Просмотр дерева наследования классов
- •Редактирование методов класса
- •Редактирование элементов данных класса
- •Приложение с единственным окном
- •Листинг 2.2. Файл mfStart.Cpp
- •Листинг 2.3. Файл mfStartApp.H
- •Оконные сообщения
- •Сообщения от органов управления
- •Командные сообщения
- •Макрокоманда on_registered_message
- •Макрокоманда on_message
- •Макрокоманда on_command
- •Макрокоманда on_command_range
- •Макрокоманда on_update_command_ui
- •Макрокоманда on_update_command_ui_range
- •Макрокоманда on_control_range
- •Забегая вперед
- •Приложение mfMenu
- •Листинг 2.7. Файл mfMenu.Cpp
- •Ресурсы приложения
- •Создание меню для приложения mfMenu
- •Листинг 2.8. Файл mfMenuRes.H
- •Листинг 2.9. Файл mfMenuRes.Rc
- •Долгий путь сообщения
- •Листинг 2.10. Файл mfMessage.Cpp
- •Листинг 2.11. Фрагмент файла mfMessage.Rc
- •Листинг 2.12. Файл resource.H
- •Диалоговая панель
- •Приложение с модальной диалоговой панелью
- •Листинг 2.13. Файл mfDialog.Cpp
- •Vertical Scroll Bar Вертикальная полоса просмотра
- •Листинг 2.14. Фрагмент файла mfDlgRes.Rc
- •Листинг 2.15. Файл resource.H
- •Главный класс приложения
- •Класс диалоговой панели
- •Обмен данными
- •Приложение с немодальной диалоговой панелью
- •3. Некоторые классы mfc
- •Класс cObject – основной класс mfc
- •Конструкторы класса
- •Оператор присваивания
- •Диагностика
- •Проверка целостности объектов класса
- •Получение дампа объекта класса
- •Сохранение и восстановление состояния объекта
- •Метод IsSerializable
- •Виртуальный метод Serialize
- •Информация о классе
- •Виртуальный метод GetRuntimeClass
- •Метод IsKindOf
- •Класс cPoint – точка на плоскости
- •Класс cSize – относительные координаты
- •Класс cString – текстовые строки
- •Конструктор класса
- •Коллекции
- •Массивы – шаблон cArray
- •Списки – шаблон cList
- •Словари – шаблон cMap
- •Класс cTime – дата и время
- •Файловая система – класс cFile
- •Открытие и создание файлов
- •Идентификатор открытого файла
- •Закрытие файлов
- •Чтение и запись файлов
- •Метод Flush
- •Операции с файлами
- •Блокировка
- •Позиционирование
- •Характеристики открытого файла
- •Файловая система – классы cMemFile и cStdioFile
- •Модификация класса cMemFile
- •Файловая система – класс cStdioFile
- •Приложение TestFile
- •Листинг 3.1. Файл TestFile.Cpp
- •Листинг 3.2. Файл fsystem.Dat
- •Исключения – класс cException
- •Класс cException
- •Класс cMemoryException
- •Класс cFileException
- •Приложение Except
- •Листинг 3.3. Файл Except.Cpp
- •Класс cArchiveException
- •Класс cNotSupportedException
- •Класс cResourceException
- •Класс cUserException
- •Запись и восстановление объектов
- •Запись в архивный файл
- •Чтение из архивного файла
- •Многозадачные приложения
- •4. Приложение с главной диалоговой панелью
- •Создание приложения средствами mfc AppWizard
- •Приложение Dialog
- •Имена, используемые mfc
- •Ресурсы приложения
- •Icons Пиктограммы
- •Version information Сведения о версии приложения
- •Диалоговые панели приложения Dialog
- •Пиктограмма
- •Исходные тексты приложения
- •Главный класс приложения dialog
- •Листинг 4.1. Файл Dialog.H
- •Листинг 4.2. Файл Dialog.Cpp
- •Главный объект приложения
- •Метод InitInstance
- •Класс главной диалоговой панели приложения
- •Листинг 4.3. Файл DialogDlg.H
- •Листинг 4.4. Файл DialogDlg.Cpp
- •Конструктор класса cDialogDlg
- •Метод DoDataExchange
- •Метод OnInitDialog
- •Метод OnSysCommand (системное меню)
- •Метод OnPaint (отображение пиктограммы приложения)
- •Метод OnQueryDragIcon
- •Файлы StdAfx.Cpp и StdAfx.H
- •Листинг 4.5. Файл StdAfx.Cpp
- •Листинг 4.6. Файл StdAfx.H
- •Средства ClassWizard
- •Создание нового класса
- •Листинг 4.7. Файл NewClass.H
- •Листинг 4.8. Файл NewClass.Cpp
- •Включение в класс новых методов
- •Включение в класс новых элементов данных
- •Просмотр характеристик класса
- •5. Однооконный интерфейс
- •Модель “документ – окно просмотра ”
- •Процедура создания однооконного приложения
- •Приложение Single
- •Ресурсы приложения
- •Шаблон меню
- •Панель управления toolbar
- •Пиктограмма
- •Диалоговая панель
- •Общие замечания о ресурсах приложения
- •Классы приложения
- •Класс cSingleApp
- •Главный объект приложения
- •Конструктор класса cSingleApp
- •Метод InitInstance
- •Метод OnAppAbout
- •Класс cSingleDoc
- •Конструктор и деструктор класса cSingleDoc
- •Методы OnNewDocument и Serialize
- •Методы AssertValid и Dump
- •Класс cSingleView
- •Конструктор и деструктор класса cSingleView
- •Метод GetDocument
- •Метод PreCreateWindow
- •Метод OnDraw
- •Методы OnPreparePrinting, OnBeginPrinting и OnEndPrinting
- •Методы AssertValid и Dump
- •Класс cMainFrame
- •Конструктор и деструктор класса cMainFrame
- •Метод OnCreate
- •Панель управления и панель состояния
- •Панель управления
- •Панель состояния
- •Метод PreCreateWindow
- •Методы AssertValid и Dump
- •Обработка командных сообщений
- •Порядок обработки сообщений
- •Главное окно однооконного приложения
- •Окно просмотра
- •Документ
- •Диалоговая панель
- •Командные сообщения и приложение Single
- •Изменение порядка обработки сообщений
- •Стандартные команд ные сообщения
- •Командные сообщения с идентификаторами id_file_
- •Командные сообщения с идентификаторами id_edit_
- •Командные сообщения с идентификаторами id_window_
- •Командные сообщения с идентификаторами id_app_
- •Командные сообщения с идентификаторами id_help_
- •Командные сообщения с идентификаторами id_view_
- •Простейший графический редактор
- •Создание нового документа
- •Сохранение и восстановление документа на диске
- •Для забывчивых пользователей
- •Простейший текстовый редактор
- •Заключение
- •Литература
Поддержка сети Internet
Последние версии Microsoft Internet Information Server, используемого в качестве серверов WWW и FTP, имеют программный интерфейс (Internet Server application programming interface – ISAPI ). Используя этот интерфейс, вы можете разрабатывать собственные модули, взаимодействующие с сервером.
Чтобы облегчить программистам создание таких модулей, Microsoft Visual C++ версии 4.1 содержит “волшебник” ISAPI Extention Wizard, работающий на тех же принципах, что и MFC AppWizard. ISAPI Extention Wizard использует новые классы библиотеки MFC – CHttpServer , CHttpFilter, CHttpServerContext, CHttpFilterContext и CHtmlStream.
Язык моделирования виртуальной реальности
Язык моделирования виртуальной реальности позволяет помещать на WEB страницах серверов WWW трехмерные изображения. Подключившись к такой странице, пользователь сможет не просто просматривать статические изображения, он сможет перемещаться по трехмерному виртуальному пространству, выбирать различные объекты и т. д.
Игровое sdk
В настоящее время существует очень мало компьютерных игр, созданных специально для работы в операционной системе Windows. Обычно эти игры достаточно примитивны и не далеко ушли от таких игр как пасьянс и минер, поставляемых вместе с Windows. В то же время игры, которые не нуждаются в средствах Windows, значительно сложнее и имеют несравненно более сложный и реалистичный интерфейс.
Отсутствие сложных игр для Windows связано в первую очередь с тем, что в этой операционной системе нет средств для быстрого отображения графической информации на экране. Существующие методы не позволяют приложениям Windows отображать информацию с достаточной для компьютерных игр скоростью.
С появлением операционной системы Windows 95 ситуация начала изменяться к лучшему. В Windows 95 встроен специальный набор функций, обеспечивающий приложениям высокоэффективный доступ к видеоадаптеру. Вышли первые игры для Windows 95. Так фирма idSoftware выпустила специальную версию популярной игры Doom 2, предназначенную для работы исключительно в среде Windows 95.
Для создания программ, поддерживающих этот набор функций, необходимо использовать специальной средство разработки Games SDK. Ранее оно поставлялось отдельно, а начиная с версии 4.1 компилятора Microsoft Visual C++, вошло в состав этого пакета.
Набор ocx объектов
По сравнению с Microsoft Visual C++ версии 4.0 в версии 4.1 значительно расширен набор органов управления OLE (OCX). В него Microsoft включила органы управления OCX, разработанные другими фирмами.
Как связаться с авторами
Авторы имеют почтовый адрес в сети GlasNet. Все свои замечания и предложения по содержанию книг серий "Библиотека системного программиста", а также "Персональный компьютер – шаг за шагом" вы можете присылать нам по следующему адресу:
frolov@glas.apc.org
Наш почтовый адрес доступен не только пользователям сети GlasNet. Абоненты других компьютерных сетей также могут передавать нам сообщения. Ниже мы приводим наш адрес в различных сетях:
Вы также можете присылать свои пожелания почтой по адресу:
Издательский отдел АО "ДИАЛОГ-МИФИ".
Индекс 115409, город Москва, улица Москворечье, дом 31, корпус 2.
Приносим свои извинения за то, что не можем ответить на каждое письмо. Мы также не занимаемся рассылкой дискет и исходных текстов к нашим книгам. По этому вопросу обращайтесь непосредственно в издательство “Диалог-МИФИ”.