Предисловие
Содержание книги
Для кого эта книга
Благодарности
О названии
Глава 1. Введение в С++
§ 1.1. С и С++. Краткая история
§ 1.2. Типы данных
Переменные
Константы
Указатели
Преобразование типов
Массивы
Структуры (в языке С)
Объединения (в языке С)
Пользовательские типы данных
§ 1.3. Выражения и операторы
Оператор if
Оператор ?:
Операторы switch, break
Циклы
Цикл while
Цикл do-while
Цикл for
Оператор goto
§ 1.4. Структура программы на языке C++. Функции
Указатели на функции
Перегрузка функций (полиморфизм функций)
Подставляемые функции
Передача параметров
Шаблоны функций
Комментарии
§ 1.5. Препроцессор
Проверка условия
§ 1.6. Библиотечные функции
Функции ввода/вывода
Строковый ввод/вывод
Файловый ввод/вывод
Математические функции
Часто употребляемые строковые функции
Функции преобразования "строка -> число"
Функции преобразования "число ->строка"
Функция определения количества символов в строке
Копирование и слияние (конкатенция) строк
Функции сравнение строк
Преобразование строк
Поиск подстроки в строке
§ 1.7. Принципы объектного программирования
Общие принципы
Классы
Спецификаторы доступа
Конструкторы и деструкторы
Статические члены
Указатель this
Константные методы
Наследование
Базовый класс с несколькими конструкторами
Ссылки на объекты базового и производного классов
Полиморфизм
Виртуальные деструкторы
Абстрактные классы и чисто виртуальные функции
Виртуальные классы
Шаблоны классов
Объекты как члены класса
Вложенные классы
Порядок выполнения конструкторов и деструкторов при наличии внедренных объектов
§ 1.8. Обзор потоков ввода/вывода
Объекты cin и cout
Файловый ввод/вывод
§ 1.9. Что еще таит в себе C++
Перегрузка операторов
Обработка исключительных ситуаций
Пространство имен
Выделение памяти
Язык ассемблера
Библиотека шаблонов
Новое о заголовочных файлах
Глава 2. Интегрированная среда разработки Visual C++
§ 2.1. Интегрированная среда Visual C++
Рабочее пространство
Определение проекта и подпроекта
Конфигурация
Установки
Поиск информации в проекте
Интеллектуальные подсказки
Инструментарий
§ 2.2. Типы проектов
§ 2.3. Мастера Visual C++
Мастер приложения
Управление классами
§ 2.4. Настройка проекта и опции компилятора
Настройка компилятора
Настройка компоновщика
§ 2.5. Отладка в Visual C++
Специальные отладочные средства
Другие макросы
Окно Exceptions
Глава 3. Начала MFC
§ 3.1. Иерархия классов
Архитектура приложения
Классы семейства CDialog
Классы семейства CView
Классы, производные от CDocument
Классы, производные от CDocTemplate
Классы элементов управления
Классы семейства CDocItem
Классы, порождаемые непосредственно от CCmdTarget
Исключения
Группа файлового сервиса
Классы графического вывода
Поддержка элементов управления
Графические объекты
Меню
Классы для работы с ODBC
Классы для работы с DAO
Классы синхронизации потоков и процессов
Сокеты в Windows
Классы массивов
Классы списков
Классы ассоциативных списков
Классы сервиса Интернет
Класс для работы с командной строкой
Классы, не порождаемые CObject
API-серверы Интернета
Поддержка времени исполнения
Простые типы данных
Структуры
Классы дополнительной поддержки
Шаблоны контейнеров
Контейнеры объектов OLE
Автоматизация OLE
Поддержка синхронизации
§ 3.2. Класс CObject
Члены класса CObject
Структура CRuntimeClass
§ 3.3. Сериализации
§ 3.4. Обзор некоторых классов
Класс CArchive
Класс CWinApp
Глава 4. Введение в API-программирование
§ 4.1. Структура API-программ
Функция WinMain
Инициализация
Цикл обработки сообщений
Оконная функция
Другие функции
§ 4.2. Примеры программ
§ 4.3. Введение в ресурсы
§ 4.4. Диалоговые программы
§ 4.5. Графика и шрифты
Вывод простой текстовой информации
Вывод графической информации
Понятие виртуального окна
Метрики текста и шрифты
§ 4.6. API-управление файлами
Характеристики файлов
Поиск файлов
Работа с двоичными файлами
§ 4.7. Многозадачность в операционной системе Windows
Общие соображения о многозадачности
Создание процесса
Взаимодействие процессов
Потоки
Многопотоковые программы
Семафор
События
Критические секции
Взаимоисключения
Таймеры
§ 4.8. Архитектура памяти в Windows
Адресное пространство процесса
Управление памятью
Файлы, отображаемые в память
§ 4.9. Совместное использование API-программирования и библиотеки MFC
Программа имеет API-структуру
Приложение строится на базе библиотеки MFC
Глава 5. Консольные приложения
§ 5.1. Общее положение о консольном приложении, его структура
§ 5.2. Поддержка консольных приложений в Windows
§ 5.3. Консольное приложение и MFC
Глава 6. Продолжаем изучать MFC
§ 6.1. Ресурсы
Типы ресурсов
Редактирование ресурсов
Редактор ресурса Accelerato
Графический редактор
Редактор HTML
Редактор ресурса "строка"
Редактор ресурса Version
Редактор диалоговых окон
Шаблоны ресурсов
Файлы ресурса
§ 6.2. Структура MFC-приложения
§ 6.3. Обработка сообщений
Макросы, используемые в карте сообщений
Макросы для стандартных сообщений Windows
Макрос для командного сообщения
Макрос команд обновления
Макрос для обработки извещений от элементов управления
Макрос для определения сообщений и команд пользователя
Обработка отраженных сообщений
Пути сообщений в MFC
Класс CWnd
Глава 7. Диалоговые окна с текстовой и графической информацией
§ 7.1. Простое диалоговое приложение
§ 7.2. Контекст устройства. Управление шрифтами. Графика
Шрифты
Простейшая графика
Битовые образы
§ 7.3. Примеры программирования элементов управления
Пример 1. Окно ввода имени и пароля
Пример 2. Список CListCtrl
Пример 3. Всплывающие подсказки
Пример 4. Класс CDHtmlDialog
Пример 5. Меню и акселераторы
Наиболее важные члены класса CMenu
Пример 6. Страницы свойств
Пример 7. Счетчик
§ 7.4. Члены класса CDialog
Конструктор класса
§ 7.5. Некоторые классы поддержки элементов управления
Класс CListBox
Методы класса
Класс CButton
Методы класса
Класс CComboBox
Методы класса
Класс CTabCtrl
Алгоритм создания вкладки
Класс CEdit
Методы класса
Класс CAnimateCtrl
Методы класса
Класс CListCtrl
Методы класса
Класс CRichEditCtrl
Методы класса
Глава 8. Окна модальные и немодальные
§ 8.1. Немодальные окна
§ 8.2. Взаимодействие модальных и немодальных окон
Глава 9. Многозадачность и таймеры
§ 9.1. Таймеры в приложениях MFC
§ 9.2. Многозадачность в MFC
Создание потока
Функция потока
Некоторые методы и функции
Получение кода завершения
Приостановка потока
Возобновление потока
Взаимодействие потоков
Критическая секция
Событие
Семафоры
Взаимоисключение
§ 9.3. Примеры многозадачных приложений
Запуск консольного приложения
Использование класса CEvent
Пример использования критической секции
Глава 10. Элементы управления ActiveX
§ 10.1. Общие положения
§ 10.2. Примеры использования элементов ActiveX
§ 10.3. Создание элементов ActiveX
Добавление базовых свойств (Stock Properties) в элемент ActiveX
Добавление пользовательских свойств (Custom Properties) в элемент ActiveX
Изображение элемента ActiveX
Изменение вида элементов ActiveX
Добавление методов элементу ActiveX
Отладка элементов ActiveX в среде Visual Studio .NET
Глава 11. Документы в MFC
§ 11.1. Документы и представления
Общие положения
Вид приложения
MDI-спецификация
§ 11.2. Структура MDI-проекта
§ 11.3. Описание классов
Класс CView
Класс CDocument
Класс CFrameWnd — окно-рамка или фрейм
Класс CDocTemplate — шаблон документа
§ 11.4. SDI- и MDI-приложения (примеры)
Пример многодокументного приложения
Панель инструментов
Окно статуса
Список документов
§ 11.5. Печать и предварительный просмотр
Глава 12. Динамические библиотеки
§ 12.1. Общие положения
§ 12.2. Примеры динамических библиотек
§ 12.3. MFC и динамические библиотеки
Регулярные динамические библиотеки
Динамические библиотеки расширения MFC
Глава 13. Технология OLE
§ 13.1. Общие положения
Исторические замечания
Контейнеры и серверы
Контроллеры и серверы автоматизации
Технология COM
§ 13.2. Простой контейнер
Создание проекта
Активизация с помощью пункта меню
Удаление объекта
Активизация и деактивизация объекта с помощью мыши
Тракерная рамка
Перетаскивание объекта в другие окна
Перетаскивание объекта извне
Функция OnDragEnter()
Функция OnDragOver()
Функция OnDragLeave()
Функция OnDragDrop()
§ 13.3. Сервер OLE
CsrvoleApp
CsrvoleView
CmainFrame
CsrvoleDoc
CInPlaceFrame
CsrvoleSrvrItem
Сервер и контейнер в одном лице
§ 13.4. Сервер автоматизации
Модуль autom.cpp
Глава 14. COM-технологии. Библиотека ATL
§ 14.1. COM-модель
Основные понятия
Простой COM-клиент
Простой COM-сервер
Пример реализации фабрики классов
Поиск идентификатора в реестре
Использование языка MIDL
Краткое введение в язык MIDL
§ 14.2. Программирование с использованием ATL
Использование ATL в обычных приложениях
Написание ActiveX с использованием ATL
Совершенствование элемента ActiveX
Обработка событий
Методы элемента ActiveX
События, обрабатываемые клиентом
Свойства
Глава 15. Управление базами данных
§ 15.1. Реляционная модель баз данных
Server MS SQL
§ 15.2. Программирование ODBC
Добавление и удаление записи
Работа с несколькими таблицами
Добавление по поводу программирования на основе ODBC
§ 15.3. Программирование OLE DB
Проект MFC
Глава 16. Сетевое программирование
§ 16.1. Доступ к ресурсам локальной сети
Сетевые устройства
Подключение сетевого устройства
Поиск ресурсов в локальной сети
§ 16.2. Сетевые протоколы семейства TCP/IP
Модель OSI
Семейство TCP/IP
IP-адресация
Маскирование адресов
Физические адреса и адреса IP
Служба DNS
Автоматическое назначение IP-адресов
Маршрутизация
§ 16.3. Программирование сокетов
Классы MFC
Глава 17. Программирование в Интернете
§ 17.1. Классы поддержки программирования в глобальной сети
CInternetSession
Конструктор класса
CInternetConnection
Конструктор класса
CFtpConnection
CHttpConnection
CInternetFile
CHttpFile
CFtpFileFind
Обзор работы протокола HTTP
Метод GET
Метод HEAD
Метод POST
Метод LINK
Метод UNLINK
Метод PUT
Метод DELETE
URL (Uniform Resource Locator)
О FTP
Cookie
§ 17.2. Примеры программирования клиентов
Простой FTP-клиент
HTTP-клиенты
Браузер
§ 17.3. Программирование со стороны сервера
О сервере IIS
ISAPI-расширения
ISAPI-фильтры
CGI-программы
Результат работы тестовой CGI-программы
Глава 18. Обработка исключений
§ 18.1. Классы исключений
Класс CException
Методы класса
Класс CArchiveException
Члены класса
Класс CFileException
Члены класса
Класс CResourceException
Класс COleException
Члены класса
Класс CDaoException
Члены класса
Класс CDBException
Члены класса
Класс CUserException
Класс COleDispatchException
Члены класса
Класс CMemoryException
Класс CnotSupportedException
Класс CInternetException
Члены класса
§ 18.2. Примеры использования исключений
Глава 19. Программирование справочной системы
§ 19.1. Создание традиционной справочной системы
Функция WinHelp
Проект справочной системы
Справочные сообщения
Структура файлов rtf
§ 19.2. Создание справочной системы HTML
Проект с новой справочной системой
Преобразование старой справочной системы в новую
Создание нового проекта справочной системы
Приложение 1. Имена переменных
Венгерская нотация
Кодировка строк
Приложение 2. Некоторые макросы
Приложение 3. Глобальные переменные и функции MFC
Приложение 4. Классы строк, массивов, списков и др.
Класс CString
Классы массивов
Классы списков
Ассоциированные списки
Класс CTime
Приложение 5. Библиотека шаблонов STL
Типы контейнеров
Итераторы
Функции-объекты
Алгоритмы
Адаптеры
Послесловие
Литература
Предметный указатель