438______________________________________________Глава 7

s[i] = s[i] " Key;

}
return s;

)

Обе приведенные функции выполняют аналогичные операции, но вторая не
вызывает никаких сложностей при включении ее в DLL.

Теперь обратите внимание в заголовке модуля DLL на строку

ftinclude <vcl.h>

Она подключает заголовочный файл vcl.h. Этот файл нужен, если вы используете
какие-то классы, формы, функции, связанные с библиотекой визуальных компо-
нентов. В противном случае вы можете удалить этот оператор из текста DLL.

В конце приведенного текста заготовки DLL используется функция DllEntry-
Point, необходимая для загрузки и выгрузки библиотеки. Она создает дескриптор
hinst вашей DLL. Он требуется при выполнении некоторых функций, например,
Loadlcon, LoadCursor и др. В этих случаях вы можете использовать параметр
hinst для создания соответствующей глобальной переменной.

Для того, чтобы уяснить последовательность построения и использования
DLL, давайте теперь создадим DLL с именем MyDLL и включим в нее приведенную
выше функцию Code. Выполните последовательно следующие шаги.

1. Выполните команду File New и выберите в окне New Items на странице New
пиктограмму DLL. Вы попадете в окно Редактора Кода, куда будет загружен
приведенный ранее текст.

2. Удалите из текста комментарий.

3. Вставьте перед описанием директиву включения головного файла:

ftinclude "MyDLL.h"
Файла MyDLL.h пока нет, но скоро вы его создадите.

4. Вставьте после описания DllEntryPoint приведенное выше описание своей
функции Code.

5. Сохраните ваш проект под именем MyDLL.

В результате рассмотренных действий файл MyDLL.cpp примет следующий
вид:

«include <vcl.h>
ftpragma hdrstop

//——————————————————————

ttinclude "MyDLL.h"

int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void'

{

return 1;

}

//——————————————————————

char * Code Dec(char *s, char Key)
(

for (int i = 0; ; i++)

(
if (s[i] == '\0') break;

s[i] = s[i] л Key;

}

return s;

}
//——————————————————————

Теперь давайте создадим заголовочный файл библиотеки.