Table Of ContentПриглашая вас стать членами нового клуба «Профессионал», мы стремимся предоставить максимум
удобств в поиске и приобретении книг, которые нужны, чтобы чувствовать себя на «ты» с компьютером
и совершенствовать свое мастерство.
Члены клуба имеют возможность:
раньше других познакомиться с новинками компьютерной литературы
встретиться с авторами книг и задать им вопросы (как лично, так и по почте или e-mail)
высказать свое мнение по актуальным темам на страницах пресс-бюллетеня клуба
найти делового партнера, друга по переписке
А получить книгу стало просто, как никогда, — достаточно отправить заказ по почте!
Только для членов клуба:
система СКИДОК ПРИЗЫ бесплатной лотереи
пресс-бюллетень доставка книг на дом в Санкт-Петербурге и Москве
не забудьте указать свой номер телефона в заказе
Все, что нужно, чтобы стать членом клуба, —
заказать книгу сейчас
и заказывать хотя бы 1 книгу раз в 3 месяца.
Информацию о книгах вы найдете в конце книги.
Скидки для членов клуба «Профессионал»:
Вы накапливаете баллы: И получаете:
за каждый полный рубль стоимости заказанных книг 1 балл Количество баллов Скидка
за привлечение в клуб нового члена 10 баллов 40 2%
за заказ книг 2 раза в квартал 3 балла 80 4%
за заказ книг 3 и более раз в квартал 6 баллов 160 8%
при заказе одновременно 2-Х И более книг 3 балла (Баллы, накопленные за год, необходимо ис-
пользовать в этом же году)
Например, вы заказали:
1. Dynamic HTML: справочник 101 руб.
2. TCP/IP. Сертификационный экзамен — экстерном 89 руб.
Итого: 190 руб.
Вы наберете 190 баллов (за заказ книг на 190 рублей) + 2x3 балла (за заказ одновременно
2-х и более книг) — 196 баллов
Поздравляем!
Вы набрали более 160 баллов и получите скидку 8% от стоимости ваших последующих заказов.
Скидка действительна до 15.07.99
Кроме того
Четыре раза в год мы предлагаем вам выиграть в лотерее:
бесплатное выполнение вашего заказа
подписку на журнал «Мир Internet» и другие разнообразные призы
и ежегодный СУПЕРПРИЗ — мультимедиа-компьютер
Ждем ваших заявок на вступление в клуб и на книги издательского дома «Питер»
*по телефону: (812) 294-0104 *по почте: 197198, Санкт-Петербург, а/я 619
*на web-сервере: www.piter-press.ru *по e-mail: [email protected]
Richard C. Leinecker
The
Visual C++
Programmers
Reference
Ричард Лейнекер
ЭНЦИКЛОПЕДИЯ
Visual С++
Санкт-Петербург
Москва • Харьков • Минск
1999
Ричард Лейнекер
Энциклопедия Visual С++
Перевел с английского А. Бердников
Главный редактор В. Усманов
Заведующий редакцией Е. Строганова
Литературный редактор С. Реентенко
Художник И. Половодов
Выпускающий редактор К. Быстров
Корректор В. Листова
Верстка П. Быстрое
ББК 32.973.2-018Я22
УДК 681.3.06(03)
Лейнекер Р.
Л42 Энциклопедия Visual C++ — СПб: Издательство «Питер», 1999. — 1152 с: ил.
ISBN 5-314-00063-6
Книга представляет собой наиболее полный, подробный и точный энциклопедический справочник по языку
Visual C++. В нем содержатся организованные в алфавитном порядке сведения обо всех элементах языка с описа-
нием синтаксиса и примерами использования. Издание дополняется многочисленными справочными таблицами,
полным листингом сообщений и кодов ошибок Windows, списком адресов Web-узлов, посвященных C++, и другой
полезной информацией. Кроме того, вы найдете все необходимые сведения об использовании библиотеки
Microsoft Foundation Classes, советы по написанию Web-приложений и созданию ActiveX-элементов. Книга будет
служить настольным изданием для всех программистов на языке Visual C++.
Original English language Edition Copyright © 1997 by Richard C. Leinecker
© Перевод на русский язык, А. Бердников, 1999
© Серия, оформление, Издательство «Питер», 1999
Published by arrangement with the original publisher, Ventana Press Ventana Communications Group, U.S.A.
Подготовлено к печати издательством ЗАО «Издательство «Питер» по лицензионному договору с Ventana
Press Ventana Communications Group, США.
ISBN 5-314-00063-6
ISBN 1-56604-731-5 (англ.)
Все упомянутые в данном издании товарные знаки и зарегистрированные товарные знаки принадлежат своим законным владельцам.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как надежные. Тем не менее, имея
в виду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводи-
мых сведений и не несет ответственности за возможные ошибки, связанные с использованием книги.
Издательство «Питер». 196105, Санкт-Петербург, ул. Благодатная, 67. Лицензия ЛР № 066333 от 23.02.99.
Подписано в печать 26.04.99. Формат 70×1001/16. Усл. п. л. 93,6. Тираж 7000 экз. Заказ № 871.
Отпечатано с диапозитивов в ГПП «Печатный Двор» Государственного комитета РФ по печати.
197110, С.-Петербург, Чкаловский пр., 15.
Содержание
Об авторе ............................................................................................................................ 13
Благодарности .................................................................................................................... 14
Посвяшение ........................................................................................................................ 15
Указатель классов .......................................................................... 16
Введение ......................................................................................... 77
Для кого предназначена эта книга?................................................................................... 77
Дополнительная информация ........................................................................................... 77
Как организована эта книга ................................................................................................ 78
От издательства ................................................................................................................. 78
Глава 1. Использование библиотеки MFC
для построения программ .............................................. 79
Архитектура MFC-приложения .......................................................................................... 80
Интерфейсы SDI и MDI ........................................................................................... 80
Документы и графические формы в MFC .............................................................. 80
AppWizard, ClassWizard и редакторы ресурсов ................................................................ 82
Использование AppWizard для создания MFC-проекта........................................ 82
Использование ClassWizard для управления классами
и сообщениями Windows ...................................................................................... 83
Использование редакторов ресурсов для создания
и редактирования ресурсов программы ............................................................. 84
Построение каркаса программы ........................................................................................ 84
Как каркас приложения вызывает ваш код ............................................................ 84
CWinApp — класс приложения ............................................................................... 85
Шаблоны документов и создание документов
и графических форм ............................................................................................. 86
Сообщения и команды ............................................................................................ 87
Связывание сообщений и функций ........................................................................ 87
Быстрый способ связи сообщений и функций
с помощью ClassWizard ........................................................................................ 90
Объекты окна ...................................................................................................................... 91
Использование мастеров на первом этапе разработки ....................................... 91
Использование других мастеров ............................................................................ 92
6 • Содержание
Компиляция и компоновка программы .............................................................................. 93
Создание программы из среды разработки .......................................................... 93
Создание программы на основе проекта, созданного вне среды
разработки ............................................................................................................ 94
Оптимизация ....................................................................................................................... 95
Прагмы и директивы языка, влияющие на оптимизацию ..................................... 95
Ключи оптимизации ................................................................................................. 95
Отладка программы ............................................................................................................ 97
Подготовка к отладке программы ........................................................................... 97
Отладочная сборка и окончательная сборка ........................................................ 97
Отладка оптимизированного кода .......................................................................... 97
Подключение возможностей отладки .................................................................... 98
Интерфейс отладчика ............................................................................................. 98
Компиляция окончательной версии проекта .................................................................. 104
Организация «кучи» .............................................................................................. 105
Компиляция ............................................................................................................ 105
Поддержка указателей .......................................................................................... 105
Оптимизация .......................................................................................................... 106
Что дальше........................................................................................................................ 106
Глава 2. Среда разработки Developer Studio ............................ 107
Файлы, проекты и рабочие области ................................................................................ 108
Рабочие области ................................................................................................... 109
Добавление новых документов к проекту ............................................................ 109
Текстовый редактор .......................................................................................................... 110
Методы поиска текста ........................................................................................... 111
Перемещение по файлу ........................................................................................ 111
Интерактивная помощь .................................................................................................... 112
Контекстно-зависимая подсказка ......................................................................... 112
Оглавление ............................................................................................................ 113
Индекс .................................................................................................................... 113
Поиск по всему тексту ........................................................................................... 113
Информационные подмножества ......................................................................... 114
Связь с источниками информации в сети Интернет ........................................... 114
Редакторы ресурсов .............................................................................................. 114
Редактор окон диалога .......................................................................................... 114
Настройка среды Developer Studio .................................................................................. 117
Создание панели инструментов ........................................................................... 117
Настройка панели инструментов .......................................................................... 118
Настройка системы меню на панели инструментов ........................................... 120
Настройка меню и элементов меню ..................................................................... 121
Настройка кнопок инструментов и команд меню ................................................ 123
Настройка элементов меню под недавно использовавшиеся файлы
и рабочие области .............................................................................................. 125
Настройка меню Tools ........................................................................................... 126
Настройка клавиш быстрого доступа ................................................................... 127
Что дальше........................................................................................................................ 128
Содержание • 7
Глава 3. Язык C++ ........................................................................ 129
Терминология языка C++ ................................................................................................. 129
Объявления в C++ ............................................................................................................ 130
Определения в C++ .......................................................................................................... 131
Область видимости ....................................................................................................... 131
Классы памяти C++ ....................................................................................................... 132
Автоматический класс памяти .............................................................................. 132
Статический класс ................................................................................................. 133
Регистровый класс ................................................................................................ 133
Внешний класс ....................................................................................................... 134
Типы объектов .................................................................................................................. 134
Фундаментальные типы ........................................................................................ 134
Производные типы данных ................................................................................... 135
Функции .................................................................................................................. 136
Указатели заданного типа ................................................................................................ 136
Ссылки на объекты ................................................................................................ 136
Указатели на экземпляры классов ....................................................................... 138
Классы C++ ....................................................................................................................... 140
Структуры в C++ .................................................................................................... 140
Объединения в C++............................................................................................... 140
Определение типа данных «класс»................................................................................. 141
Что дальше........................................................................................................................ 143
Глава 4. Простые типы данных ................................................... 144
CPoint ................................................................................................................................. 144
CRect ................................................................................................................................. 147
CSize .................................................................................................................................. 157
CString ............................................................................................................................... 159
CTime ................................................................................................................................. 170
CTimeSpan......................................................................................................................... 175
Глава 5. Структуры ...................................................................... 178
CCommandLineInfo ............................................................................................................ 178
CMemoryState .................................................................................................................... 180
COleSafeArray ................................................................................................................... 182
CPrintInfo............................................................................................................................ 188
Глава 6. Массивы ......................................................................... 193
CArray ................................................................................................................................ 193
CObArray............................................................................................................................ 197
Глава 7. Списки ............................................................................ 202
CList ................................................................................................................................... 203
CObList .............................................................................................................................. 207
8 • Содержание
Глава 8. Карты .............................................................................. 212
СМар .................................................................................................................................. 213
CMapStringToOb ................................................................................................................ 215
Глава 9. Классы баз данных ........................................................ 218
CDaoDatabase ................................................................................................................... 219
CDaoQueryDef ................................................................................................................... 230
CDaoRecordset .................................................................................................................. 238
CDaoTableDef .................................................................................................................... 271
CDaoWorkspace ................................................................................................................ 281
CDatabase.......................................................................................................................... 292
CLongBinary ....................................................................................................................... 299
CRecordset......................................................................................................................... 300
Глава 10. Базовые классы архитектуры приложения................ 322
CConnectionPoint ............................................................................................................... 322
CDCDocTemplate .............................................................................................................. 323
CDocTemplate .................................................................................................................... 323
CMultiDocTemplate ............................................................................................................ 327
COleControlModule ............................................................................................................ 328
COleDataSource ................................................................................................................ 328
COleDropSource ................................................................................................................ 334
COleMessageFilter ............................................................................................................. 335
COleObjectFactory ............................................................................................................. 338
COleTemplateServer .......................................................................................................... 341
CSingleDocTemplate .......................................................................................................... 342
CWinApp ............................................................................................................................ 342
CWinThread ....................................................................................................................... 360
Глава 11. Классы документов ...................................................... 366
CDocItem............................................................................................................................ 367
CDocObjectServer .............................................................................................................. 367
CDocObjectServerItem ....................................................................................................... 369
CDocument......................................................................................................................... 370
COleClientItem ................................................................................................................... 377
COleDocument ................................................................................................................... 400
COleLinkingDoc .................................................................................................................. 405
COleServerDoc .................................................................................................................. 406
COleServerItem .................................................................................................................. 416
CRichEditCntrItem .............................................................................................................. 425
CRichEditDoc ..................................................................................................................... 425
Глава 12. Классы оболочек и автоматизации OLE .................... 427
CFontHolder ....................................................................................................................... 427
COleCurrency ..................................................................................................................... 429