Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции -Процедурное программирование в Windows.doc
Скачиваний:
13
Добавлен:
13.09.2019
Размер:
742.91 Кб
Скачать

Функция MapViewOfFile()

Вызов CreateFileMapping() не позволяет еще использовать отображаемые файлы. Эти функции только открывает отображаемый файл, но не позволяет получить указатель на область ”памяти” в этом файле. Для этого используется MapViewOfFile().

LPVOID MapViewOfFile(

HANDLE hFileObject, // объект возвращаемый функцией

// CreateFileMapping()

DWORD dwAccess, // режим доступа

DWORD dwOffsetHigh, // старшие 32 разряда смещения в файле

DWORD dwOffsetLow, // младшие 32 разряда смещения в файле

DWORD dwNumberBytes); // количество отображаемых байт

Первый параметр – отображает объект, значение дескриптора которого возвращается функцией CreateFileMapping().

Второй параметр устанавливает режим доступа и может принимать следующие значения:

FILE_MAP_WRITE – доступ для чтения/записи;

FILE_MAP_READ – доступ только для чтения;

FILE_MAP_COPY – создание копии при записи.

Третий и четвертый параметры являются старшими и младшими двойными словами, содержащие значение смещения внутри файла, начиная с которого нужно произвести чтение. Эти параметры используються если файл очень большой. Обычно значения их равны 0, что устанавливает чтение с начала файла.

Последний параметр – число отображаемых байт. Если нужно прочитать весь файл, то его значение равно NULL.

Пример:

LPVOID Data = MapViewOfFile( hMap, FILE_MAP_READ, 0, 0, 0);

Работа с отображенным файлом

После того как указатель Data на область памяти получен, его можно использовать для доступа к содержимому файла. При этом с содержимым файла можно обращаться так, как если бы это было обычная оперативная память. Если последние байты двух отображенных в память файлов равны 0 , то эти файлы можно присоединять друг к другу, сравнивать и т.д. с помощью обычных функций работы со строками.

И н т е р ф е й с графических устройств (gdi)

Приложения Windows используют системные драйверы самого Windows для управления устройствами отображения. При этом программисту не надо самому заниматься написанием драйверов устройств, достаточно пользоваться уже существующими функциями GDI. И если приложение выполняют , например, на компьютере с лучшим видеоадаптером, чем тот, который вы использовали при написании приложения, то благодаря GDI приложение будет автоматически исполняться с новым адаптером Windows режиме с наибольшим разрешением. Поэтому если используется новый видеоадаптер, то качество картинок, отображаемых приложением, будет лучше.

Таким образом, при использовании GDI не возникают проблемы, связанные с перенесением приложений на компьютеры с другими устройствами отображения, если эти устройства поддерживает Windows.

GDI обеспечивает для программ возможность использования двухмерной графики, различных наборов шрифтов, битовых образов и т.д.

Контекст устройства

Большинство функций GDI требуют для своего вызова предварительного получения контекста устройства, на котором отображается информация, будь то дисплей, печатающее устройство или графопостроитель.

Контекст устройства – это совокупность атрибутов, определяющих способ отображения функциями GDI информации на данном устройстве. Контекст устройства включает, например, такие атрибуты, как цвет фона, цвет символов отображаемого текста, тип используемого пера и кисти.