Файлы определения модуля
Файл определения модуля .DEF обеспечивает информацию о содержимом файла и требованиях к системе приложения Windows. Эта
информацию используется компоновщиком и включает в себя размер
динамически распределяемой памяти и стека, а также характеристики
кода и данных. Файл .DEF перечисляет также функции, которые должны быть доступными для других модулей (экспортируемые функции), и
используемые функции других модулей (импортируемые функции). Так
как компоновщик Borland имеет и другие способы получения этой информации, файл .DEF для него не обязателен. Файл .DEF содержит
несколько операторов. Перечислим некоторые из них:
NAME | Задает имя программы. Если нужно построить DLL,
используйте оператор LIBRARY. Каждый файл .DEF обязательно должен иметь оператор NAME или LIBRARY. Заданное имя должно совпадать с именем выполняемого файла. WINDOWAPI идентифицирует программу, как выполняемую программу Windows. |
DESCRIPTION | Позволяет вам задать строку, описывающую ваше
приложение или библиотеку. |
EXETYPE | Помечает файл, как выполняемый файл Windows (это
необходимо для всех выполняемых файлов Windows. |
CODE | Описывает атрибуты выполняемого сегмента кода
Параметр PRELOAD указывает загрузчику, что при загрузке приложения в память нужно загрузить эту часть образа файла. MOVEABLE указывает, что Windows может перемещать код в памяти. |
HEAPSIZE | Задает размер локальной динамически распределяе-
мой памяти приложения. |
STACKSIZE | Задает размер стека приложения. Для создания DLL
этот оператор использовать нельзя. |
Кроме указанных в файлах .DEF используются операции EXPORTS
и IMPORTS. Оператор EXPORTS перечисляет функции в программе или
DLL, которые будут вызываться другими приложениями или Windows
(экспортируемые функции или функции обратного вызова). Экспортируемые функции идентифицируются компоновщиком и вводятся в таблицу экспорта.
Чтобы избежать создания в файлах .DEF длинных секций
EXPORTS, в Borland C++ предусмотрено ключевое слово _export. Отмеченные этим ключевым словом функции будут идентифицироваться
компоновщиком и вводиться компоновщиком в таблицу экспорта.