Четвертый Borland C++ и его окружение

       

Классы в DLL


Данная утилита удобна для DLL, использующей классы C++, по

двум соображениям. Во-первых, если вы используете ключевое слово

_exрort при определении класса, экспортируются все невстроенные

функции-элементы и элементы статических данных для этого класса.

Удобнее создать файл определения модуля с помощью IMPDEF, так как

в нем будут перечислены все экспортируемые функции, включая функции-элементы и элементы статических данных.

Поскольку имена данных функций являются "скорректированными", процесс перечисления всех имен функций в секции EXPORTS файла определения модуля для создания библиотеки импорта из файла

определения модуля является очень утомительным. Если для создания

файла определения модуля вы используете утилиту IMPDEF, она будет

включать порядковое значение для каждой экспортируемой функции,

так же как и исходное имя в комментариях, следующих за точкой

входа функции, если экспортируемое имя является "скорректированным". Так, например, файл определения модуля, созданный утилитой

IMPDEF для DLL, которая использует классы C++, будет выглядеть



примерно следующим образом:

LIBRARY имя_файла

DESCRIPTION 'Описание'

EXPORTS

скоррект_имя_экпорт_функции @номер ; имя_экспорт_функции

...

скоррект_имя_экпорт_функции @номер ; имя_экспорт_функции

где "имя_файла" является корневым именем DLL, 'Описание' является

значением утверждения DESCRIPTION, если DLL была предварительно

скомпонована с файлом определения модулей, который включал ут-

верждение DESCRIPTION, "скоррект_имя_экпорт_функции" представляет

собой скорректированное имя, "номера" являются порядковыми значе-

ниями (целыми) функций, а "имя_экпорт_функции" задает исходное

имя функции.



Содержание раздела