Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 200


239

Это, так сказать, самое Windows. Многочисленные DLL, которые можно найти в директории Windows, являются ее расширениями. Но, естествен­но, пользователи об этом и не догадываются.

Как правило, написать DLL значительно легче, чем разработать про­грамму, ибо DLL - это всего-навсего набор автономных функций, предна­значенных для вызова из других приложений или DLL. Естественно, что при этом условии в DLL совершенно не нужен цикл обработки сообще­ний или функция создания окна, что, как правило, присутствует в вызы­вающей программе. DLL компилируются и линкуются точно так же, как и обычные программы, единственное, необходимо указать линкеру, что необходимо создать DLL, а не программу. В этом случае цинкование проходит несколько другим способом, в результате чего в конечный файл записывается другая информация, и загрузчик Windows с легкостью отличает DLL от обычной программы.

СПОСОБЫ ПРИСОЕДИНЕНИЯ DLL К ПРОГРАММЕ

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

Решить эту задачу можно двумя способами. Первый способ - это не­явное линкование с DLL. Второй способ - явная загрузка DLL.

НЕЯВНОЕ ЛИНКОВАНИЕ С DLL

При неявном линковании программа не знает о том, какую библиоте­ку ей необходимо присоединить. Для того чтобы неявно прилинковать библиотеку, необходимо на этапе подготовки проекта произвести неко­торые действия: создать файл с расширением .lib, содержащий ссылку на DLL и перечень находящихся в ней функций. Делается это с помощью утилиты implib. Вызывается она следующим образом:

implib FileNamel.lib FileName2.dll

где FileNamel.lib - это имя создаваемого файла; а FileName2.dll - DLL. Полученный lib-файл можно прилинковать к вашей программе точно так же, как и любую другую библиотеку.

Для того чтобы проиллюстрировать процесс вызова DLL




Начало  Назад  Вперед



Книжный магазин