Модули Си и С++ в программе обычно совместно используют оп- ределение типов и структур данных. Это делается с помощью включения небольших файлов (файлов-заголовков), которые содержат определения типов и структуры данных, используемые в нескольких модулях. Файл заголовка в Си/С++ имеет обычно имя с расширением .H. Ассемблируемые модули обычно имеют файлы заголовков с расшире- нием .ASH (или .INC).
Программы, содержащие модули, написанные на Си/С++ и модули Турбо Ассемблера, должны иметь возможность совместного определе- ния типов и структур данных. Этому способствует утилита H2ASH.
Утилита H2ASH преобразует файлы заголовков Си/С++ в файлы заголовков языка Ассемблера. Как и исходные файлы с расширением .H полученные в результате файлы с расширением .ASH сами не со- держат программу. Если для вызова H2ASH вы используете следующий синтаксис:
H2ASH [[параметры] <имя_файла> [<имя_файла> .]]
где каждое поле "имя_файла" задает имя конвертируемого файла за- головка. Утилита H2ASH предполагает, что преобразуемый файл имеет по умолчанию расширение .H. Для каждого обрабатываемого файла со- ответствующий выходной файл имеет расширение .ASH.
"Параметры" соответствуют параметрам командной строки компи- лятора Borland C++, а также специфическим параметрам утилиты H2ASH (которые соответствуют параметрам -q Турбо Ассемблера). См. "Руководство пользователя Bоrland C++" и оперативный справочник, где можно найти описания данных параметров.
Утилита H2ASH преобразует следующие конструкции:
- все основные типы языка Си;
- типы ENUM (в типы ENUM TASM);
- #IFDEF (в эквивалентные IFDEF Ассемблера);
- #DEFINE (в определения EQU);
- структуры и объединения (в структуры и объединения Турбо Ассемблера);
- структуры с битовыми полями (в записи Ассемблера RECORD);
- определения TYPEDEF (в TYPEDEF Ассемблера);
- классы без множественного наследования и без виртуальных базовых классов;
- элементы классов;
- переопределения операций.
Утилита-преобразователь имеет следующие ограничения: