Макросы переносимости
Средства RPC достигают независимости модели, вызова и соглашения об именовании путем связывания типов данных и возвращаемых функций в созданных файлах заглушки и файлах заголовков с определениями, характерными для каждой платформы. Эти определения макросов гарантируют, что все типы данных и функции, требующие обозначения __far , указываются в качестве объектов.
На следующем рисунке показаны определения макросов, которые компилятор MIDL применяет к вызовам функций между компонентами RPC:
Макросы RPC определяются следующим образом.
Определение | Описание |
---|---|
__RPC_API | Применяется к вызовам заглушки к пользовательскому приложению. Обе функции находятся в одной исполняемой программе. |
__RPC_FAR | Применяется к стандартному определению макроса для указателей. Это определение макроса должно отображаться как часть подписи всех пользовательских функций. |
__RPC_STUB | Применяется к вызовам, выполняемым из библиотеки времени выполнения к заглушку. Эти вызовы можно считать частными. |
__RPC_USER | Применяется к вызовам, выполняемым библиотекой времени выполнения к пользовательскому приложению. Они пересекают границу между библиотекой DLL и приложением. |
RPC_ENTRY | Применяется к вызовам приложения или заглушки к библиотеке времени выполнения. Это определение макроса применяется ко всем функциям среды выполнения RPC. |
Чтобы правильно связаться с библиотеками времени выполнения Microsoft RPC, заглушками и подпрограммами поддержки, некоторые пользовательские функции также должны включать эти макросы в определение функции. Используйте макрос __RPC_API при определении функций, связанных с управлением памятью, определяемыми пользователем дескрипторами привязки и атрибутом transmit_as , а также при определении подпрограммы запуска контекста, связанной с дескриптором контекста, используйте __RPC_USER макроса. Укажите функции следующим образом:
-
__RPC_USER midl_user_allocate(...)
-
__RPC_USER midl_user_free(...)
-
__RPC_USER handletype_bind(...)
-
__RPC_USER handletype_unbind(...)
-
тип __RPC_USER_to_local
-
тип __RPC_USER_from_local
-
__RPC_USER type_to_xmit(...)
-
тип __RPC_USER_from_xmit(...)
-
тип __RPC_USER_free_local
-
тип __RPC_USER_free_inst(...)
-
тип __RPC_USER_free_xmit(...)
-
__RPC_USER context_rundown(...)
Примечание
Все параметры указателя в этих функциях должны быть указаны с помощью __RPC_FAR макросов.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера |
Windows 2000 Server [только классические приложения] |
Заголовок |
|