- •1. Windows-как объектно-ориентированная операционная система (трпс)
- •2. Общая схема взаимодействия приложения и ядра Windows. (трпс)
- •3. Общая схема Windows приложения. Цикл обработки сообщения, функция окна, ресурсы. (трпс)
- •4. Синхронные и асинхронные Windows сообщения. Сходства и отличия. Области применения. (трпс)
- •5. Классы и стили окон. Иерархия окон. (трпс)
- •6. Особенности отрисовки для Windows приложения. Контекст устройства, недействительная область, обработка сообщений. (трпс)
- •7. Типы клавиатурных сообщений. Особенности обработки. (трпс)
- •8. Типы сообщений от манипулятора мышь. Особенности обработки. (трпс)
- •10. Основные понятия процесса, потока, фибера (трпс)
- •9. Реализация корпоративной и вытесняющей многозадачности на Windows платформах. (трпс)
- •11. Схема создания рабочего потока (трпс)
- •12. Синхронизация потоков, события, критические секции. (трпс)
- •13. Особенности использования памяти на Windows платформах. Проблема ipc (трпс)
- •14. Общая схема печати документов приложением на Windows платформах. (трпс)
- •2 Создание немодального диалога для отмены печати.
- •16. Типы и области применимости dll. Особенности программной реализации. (трпс)
- •17. Наборы символов для Windows платформ. Сходства и отличия. Области применимости. (трпс)
- •18. Типы диалогов для Windows платформ. Сходства и отличия. Особенности реализации. (трпс)
- •Int DialogBox(hinstance hInst,lpctstr pTemplate, hwnd hWndParent, dlgproc pDlgFunc)
- •Int MessageBox(hwnd hWnd, lpctstr szText, lpctstr szCaption, uint uType);
- •If (!IsDialogMessage(hDlgModaless,&msg)){
- •19. Элементы управления. Общая характеристика и области применимости. (трпс)
- •20. Функции crt и функции ядра Windows для работы с файлами. Особенности применения. (трпс)
16. Типы и области применимости dll. Особенности программной реализации. (трпс)
Поскольку API состоит из большого числа функций, может сложиться впечатление, что при компиляции каждой программы, написанной для Windows, к ней подключается код довольно значительного объема. В действительности это не так. Функции API содержатся в библиотеках динамической загрузки (Dynamic Link Libraries, или DLL), которые загружаются в память только в тот момент, когда к ним происходит обращение, т.е. при выполнении программы. Динамическая загрузка обеспечивает ряд существенных преимуществ. Во-первых, поскольку практически все программы используют API-функции, то благодаря DLL-библиотекам существенно экономится дисковое пространство. Во-вторых, изменения и улучшения в Windows-приложениях сводятся к обновлению только содержимого DLL-библиотек.
Существует два способа загрузки DLL-библиотек: явные и неявные.
Неявная загрузка. Формируя DLL, компоновщик создает дополнительный LIB-файл, содержащий символьные имена экспортируемых из всех DLL элементов и их порядковые номера, но никакого кода в нем нет. LIB-файл - это суррогат DLL, добавляемый к проекту клиентской программы.
Явная загрузка. При явной загрузке файл импорта не используется - вместо этого вызывается функция LoadLibrary, указывается полное имя DLL как параметр. LoadLibrary возвращает параметр типа HINSTANCE, его можно использовать в вызове GetProcAddress, которая преобразует символьной имя в адрес (в границах DLL).
Если при явной загрузке можно определить, когда загружать или выгружать DLL, то при неявной загрузке все DLL загружаются в момент загрузки клиента. Явная загрузка позволяет указывать и то, какие DLL следует загрузить.
Области применения:
Важнейшие MFC классы (ядро)
OLE классы
Классы для работы с базами данных
Классы Windows sockets
3 типа библиотек:
Regular DLL – полностью совместимая со всеми языками программирования, набор функций.
Regular MFC DLL – библиотека может содержать помимо функций и классы, но они будут использоваться только в данной DLL, экспортироваться могут только функции, они могут вызывать глобальные MFC функции. Доступна только в MFC.
Ext MFC DLL – DLL с полномасштабной MFC. Экспортироваться могут не только функции, но и классы.
17. Наборы символов для Windows платформ. Сходства и отличия. Области применимости. (трпс)
В MS-DOS использовался расширенный набор символов ASCII. В терминологии Windows такие таблицы кодов называются наборами символов ОЕМ. Сама система Windows для представления символов использует набор символов ANSI, Но в этом наборе определены не все коды.
Если приложение MS-DOS запускается в среде Windows, то для него выбирается набор символов ОЕМ. Для одного и того же символа в наборах ОЕМ и ANSI определены разные коды. Это приводит к необходимости перекодировки символов в определенных ситуациях.
Unicode – этот набор символов дает возможность MS Windows поддерживать много таблиц символов для разных языков. Здесь используется 2 байта для представления каждого символа, а следовательно можно задать 216 символов, в отличие от 28 как у кодировок ANSI и OEM.
