Четвертый BORLAND С++ и его окружение

Оператор EXPORTS


EXPORTS определяет имена и атрибуты экспортируемых функций.

Ключевое слово EXPORTS отмечает начало определений. После него

может следовать любое число определений экспорта, каждое в отдельной строке. Оператор имеет синтаксис:

EXPORTS

имя_эксп [номер] [RESIDENTNAME] [параметр]

где "имя_эксп" задает строку ASCII, которая определяет экспортируемый идентификатор. Она имеет следующую форму:

имя_точки_входа [=внутр_имя]

где "внутр_имя" является именем, используемым внутри прикладной

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

"Номер" определяет значение перечисления функции. Оно имеет

следующую форму:

@номер

где "номер" является целым значением, которое определяет значение



перечисления функции.

Когда модуль прикладной программы или модуль DLL вызывает

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

на функцию по имени или по значению перечисления. С точки зрения

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

функции по перечислению (с точки зрения DLL этой функции) и импортирование/вызов функции по перечислению (с точки зрения модуля

вызова) являются более эффективными.

Когда функция экспортируется по номеру, имя располагается в

нерезидентной таблице имен, а когда по имени, то в резидентной

таблице имен. Резидентная таблица имен для модуля является резидентной в памяти всякий раз, когда модуль загружен; с нерезидентной таблицей имен этого не происходит.

Параметр RESIDENTNAME позволяет указывать, что имя функции

должно быть всегда резидентным. Это используется только тогда,

когда производится экспортирование по перечислению (когда имя не

будет резидентным по умолчанию).

"Параметр" является необязательным целым значением, задающим

число слов, ожидаемых функцией в качестве параметров.



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