Григорьев Антон Борисович
Шрифт:
| Тип Windows API | Тип Delphi |
|---|---|
INT | INT |
UINT | LongWord |
WORD | Word |
SHORT | SmallInt |
USHORT | Word |
CHAR | Чаще всего соответствует типу Char , но может трактоваться также как ShortInt , т.к. в C++ нет разницы между символьным и целочисленным типами |
UCHAR | Чаще всего соответствует типу Byte , но может трактоваться также как Char |
DWORD | LongWord |
BYTE | Byte |
WCHAR | WideChar |
BOOL | LongBool |
int | Integer |
long | LongInt |
short | SmallInt |
unsigned int | Cardinal |
Название типов указателей имеет префикс P или LP (Pointer или Long Pointer, в 16-разрядных версиях Windows были короткие и длинные указатели. В 32-разрядных все указатели длинные, поэтому оба префикса имеют одинаковый смысл). Например,
Типы
Для передачи символов чаще всего используется тип
на Delphi будет выглядеть так:
Большинство названий типов из левой части табл. 1.1 в целях совместимости описаны в модуле Windows, поэтому они допустимы наравне с обычными типами Delphi. Кроме этих типов общего назначения существуют еще специальные. Например, дескриптор окна имеет тип
Записи (
Описанные здесь правила именования типов могут внести некоторую путаницу при использовании VCL. Например, для описания растра в Windows API определен тип
Все структуры в Windows API описаны без выравнивания, т.е. компилятор не вставляет между полями неиспользуемые байты, чтобы границы полей приходились на начало двойного или четверного слова, поэтому в Delphi для описания соответствующих структур предусмотрено слово
При описании структур Windows API можно иногда встретить ключевое слово
Теперь рассмотрим синтаксис описания самой функции в C++ (листинг 1.1).
Как видно из листинга 1.1, при объявлении функции существует возможность указывать только типы параметров и не указывать их имена. Однако это считается устаревшим и применяется крайне редко (если не считать "параметров" типа