Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПС- читать.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
142 Кб
Скачать
☆

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 следует загрузить.

Области применения:

  1. Важнейшие MFC классы (ядро)

  2. OLE классы

  3. Классы для работы с базами данных

  4. Классы Windows sockets

3 типа библиотек:

  1. Regular DLL – полностью совместимая со всеми языками программирования, набор функций.

  2. Regular MFC DLL – библиотека может содержать помимо функций и классы, но они будут использоваться только в данной DLL, экспортироваться могут только функции, они могут вызывать глобальные MFC функции. Доступна только в MFC.

  3. 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.