Процесс создания приложения Windows значительно отличается от двухстадийного процесса трансляция - компоновка, хотя на самом деле является всего лишь некоторым расширением этого процесса.
На рис.7 показан процесс создания приложения для Windows.
1. Написание функций WinMain() и WndProc() программы на языке С.
2. Создание текстового файла описания ресурсов (расширение .rc)- курсоров, пиктограмм, меню, диалоговых окон и прочие.
3. Создание текстового файла описание программного модуля (расширение .def).
4. Компиляция и компоновка всех исходных модулей на языке Си с использованием файла описания программного модуля.
5. Компиляция файла ресурсов и включение его в готовый исполняемый модуль.
Обычно для простых приложений используется файл определение модуля по умолчанию default.def.
Файл ресурсов ( .rc) создается с помощью редактора ресурсов Resurse Workshorp и в случае необходимости производится его редактирование как обычного текстового файла.
Для компоновки приложения Windows требуется создание файла определения модуля *.def.
Рассмотрим типичный файл определения модуля. В файл определения модуля можно включать комментарии. Комментарием считаются все символы, расположенные после точки с запятой до конца строки.
NAME test ; Имя программы
DESCRIPTION ‘Пример приложения для Windows’
CODE MOVEABLE ; Код программы можно перемещать
; При перераспределении памяти
DATA MOVEABLE MULTIPLE
; Данные программы можно перемещать при перераспределе- ; нии памяти, при этом флаг MULTIPLE обязательно указывать в
; случае, когда необходимо разрешить запуск нескольких ; копий приложения одновременно.
HEAPSIZE 1024 ; Рекомендуемый минимум размера стека для приложения
STACKSIZE 4096
; Далее указываются «экспортируемые» функции , которые вызываются только из Windows
EXPORTS
WndProc @1 ; Имя функции главного окна
About @2 ; Имя функции окна «About»
ОператорName определяет имя приложения. Это имя используется в Windows, и указание его обязательно.
Оператор DESCRIPTION это текстовая строка помещается в выполняемый файл для регистрации версии программы ими авторства.
ОператорCODE - для компоновщика 32-х разрядных приложений возможны опции:
PRELOAD - сегмент загружается в память при запуске приложения;
LOADONCALL - сегмент загружается в память только, когда происходит
обращения к некоторому его элементу;
ОператорDATA - устанавливает атрибуты сегмента данных программы.
ОператорыHEAPSIZEиSTACKSIZE - устанавливают размер локальной динамической памяти и стека программы.
Для приложений для WIN32 файл * .def обычно не используется.