Базовые типы

Чтобы предотвратить проблемы, которые зависимые от реализации типы данных могут возникнуть в разных архитектурах компьютеров, 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 . Дополнительные сведения см. в разделе Дескрипторы контекста.)