Поделиться через


Базовые типы

Чтобы предотвратить проблемы, связанные с типами данных, зависящими от реализации, могут вызываться на разных компьютерах, MIDL определяет собственные базовые типы данных.

Базовый тип Описание
логические Элемент данных, который может иметь значение TRUE или FALSE.
байтов 8-разрядный элемент данных гарантированно передается без каких-либо изменений.
char 8-разрядный элемент данных без знака.
двойные 64-разрядное число с плавающей запятой.
float 32-разрядное число с плавающей запятой.
handle_t Примитивный дескриптор, который можно использовать для привязки RPC или сериализации данных.
hyper 64-разрядное целое число, которое можно объявить как подписанные или без знака также можно называть _int64.
int 32-разрядное целое число, которое можно объявить как подписанное или без знака.
__int3264 Ключевое слово, указывающее целочисленный тип, имеющий 32-разрядные или 64-разрядные свойства.
длинные Модификатор для int, указывающий 32-разрядное целое число. Можно объявить как подписанные или без знака.
короткие 16-разрядное целое число, которое можно объявить как подписанный или без знака.
небольшие Модификатор для int, указывающий 8-разрядное целое число. Можно объявить как подписанные или без знака.
wchar_t Расширенный тип символов, поддерживаемый в качестве расширения Майкрософт для IDL. Поэтому этот тип недоступен при компиляции с помощью /коммутатора osf.

 

Файл заголовка Rpcndr.h предоставляет определения для большинства этих базовых типов данных. Ключевое слово int распознается и передается на 32-разрядных платформах. На 16-разрядных платформах тип данных in t требует модификатора, например коротких или длинных, чтобы указать длину.

Хотя void * * распознается как универсальный тип указателя по стандарту ANSI C, MIDL ограничивает его использование. Каждый указатель, используемый в удаленной или сериализации операции, должен указывать на базовые типы или типы, созданные из базовых типов. (Существует исключение: дескриптор контекста определяется как типы void. Дополнительные сведения см. в разделе Контекстные дескрипторы.)