Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Новые типы данных включают два полиморфных типа, INT_PTR и LONG_PTR. В 32-разрядной версии Windows INT_PTR сопоставляется с int, а LONG_PTR сопоставляется с long. На 64-разрядной версии Windows оба типа сопоставляются с встроенным типом __int64. Компилятор MIDL поддерживает эти типы для удаленных процедурных вызовов, но следует учесть, что существует внутренняя ограниченность, с которой необходимо считаться при их использовании в распределенной среде. Не забудьте закомментировать код соответствующим образом.
Независимо от размера платформы, размер провода этих полиморфных типов всегда составляет 32 бита. При отмене сортировки в 64-разрядной версии Windows знак библиотеки времени выполнения расширяет подписанные значения и назначает ноль байтам высокого порядка для значения без знака. Когда 64-разрядное значение передается по сети, среда выполнения усекает байты высоких разрядов. Таким образом, доступны только 32-разрядные значения низкого порядка.
Используйте полиморфные типы только при необходимости для переноса. Для новых интерфейсов используйте встроенные типы целых чисел MIDL __int32 и __int64, а также используйте тип указателя или дескриптор контекста, который наиболее подходит для типа передаваемых данных.
64-разрядный компилятор поддерживает новую полиморфную встроенную функцию __int3264. Опять же, этот тип был разработан для облегчения задачи переноса, в этом случае для поддержки типов UINT_PTR без изменений. (Еще одна встроенная функция __long3264будет поддерживать тип ULONG_PTR.) Не используйте __int3264 напрямую; используйте тип INT_PTR, если вам нужен полиморфный тип для целей переноса.