Базовые типы
Чтобы предотвратить проблемы, которые зависимые от реализации типы данных могут возникнуть в разных архитектурах компьютеров, MIDL определяет собственные базовые типы данных.
Базовый тип | Описание |
---|---|
Логических | Элемент данных, который может иметь значение TRUE или FALSE. |
Байт | 8-разрядный элемент данных гарантированно будет передаваться без каких-либо изменений. |
Char | 8-разрядный элемент данных без знака. |
Двухместный | 64-разрядное число с плавающей запятой. |
Плавать | 32-разрядное число с плавающей запятой. |
handle_t | Примитивный дескриптор, который можно использовать для привязки RPC или сериализации данных. |
hyper | 64-разрядное целое число, которое может быть объявлено как подписанное или неподписаемое можно также называть _int64. |
INT | 32-разрядное целое число, которое может быть объявлено как со знаком или без знака. |
__int3264 | Ключевое слово, указывающий целочисленный тип с 32-разрядными или 64-разрядными свойствами. |
long | Модификатор int , указывающий 32-разрядное целое число. Может быть объявлен как подписанный или неподписанный. |
short | 16-разрядное целое число, которое может быть объявлено как со знаком или без знака. |
Маленький | Модификатор для int , указывающий на 8-разрядное целое число. Может быть объявлен как подписанный или неподписанный. |
wchar_t | Расширенный тип символов, поддерживаемый в качестве расширения Майкрософт для IDL. Поэтому этот тип недоступен при компиляции / с помощью параметра osf. |
Файл заголовка Rpcndr.h предоставляет определения для большинства этих базовых типов данных. Распознается ключевое слово int и передается на 32-разрядных платформах. На 16-разрядных платформах для типа данных int требуется модификатор, например short или long, чтобы указать его длину.
Хотя void * * распознается как универсальный тип указателя стандартом ANSI C, MIDL ограничивает его использование. Каждый указатель, используемый в удаленной операции или операции сериализации, должен указывать на базовые типы или типы, созданные на основе базовых типов. (Существует исключение: дескрипторы контекста определяются как типы void . Дополнительные сведения см. в разделе Дескрипторы контекста.)