Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.14. Общие функции работы с переменными блока

А.5.14.13. rdsGetRuntimeTypeData – получить фактические данные переменной произвольного типа

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.14. Общие функции работы с переменными блока

##### А.5.14.13. rdsGetRuntimeTypeData – получить фактические данные переменной произвольного типа

Функция rdsGetRuntimeTypeData служит для доступа к фактическим данным переменной произвольного типа, если у нее в данный момент есть фактический тип. Работа с переменными произвольного типа подробно рассматривается в §2.5.6 руководства программиста.

      LPVOID RDSCALL rdsGetRuntimeTypeDataA(
        LPVOID BaseAddr,       // Базовый адрес переменной
        RDSSTR *pRealTypeStr   // Возвращаемая строка типа (UTF8)
      );
      LPVOID RDSCALL rdsGetRuntimeTypeDataW(
        LPVOID BaseAddr,       // Базовый адрес переменной
        RDSWSTR *pRealTypeStr  // Возвращаемая строка типа (UTF16)
      );
      // Функция-псевдоним
      LPVOID RDSCALL rdsGetRuntimeTypeData(
        LPVOID BaseAddr,       // Базовый адрес переменной
        RDSXSTR *pRealTypeStr  // Возвращаемая строка типа (кодировка по умолчанию)
      );

Тип указателя на эту функцию

RDS_pVpVpS (для UTF8) или RDS_pVpVpWs (для UTF16)

Параметры

BaseAddr(LPVOID)
  Базовый адрес переменной произвольного типа в дереве, то есть указатель на блок из восьми байтов, которые эта переменная занимает в дереве переменных блока.
pRealTypeStr(RDSSTR*,RDSWSTR*,RDSXSTR*)
  Указатель на переменную типа RDSSTR (char*) или RDSWSTR (wchar_t*), в которую функция запишет указатель на созданную ей динамическую строку, содержащую описание фактического типа, который в данный момент имеет переменная. Эта строка состоит из одного (для простых переменных) или нескольких (для сложных переменных) стандартных символов, используемых в RDS для указания типа переменной. Если строка типа не нужна вызывающей программе, в этом параметре можно передать NULL.

Возвращаемое значение

Указатель на начало области данных переменной какого-либо фактического типа, созданной внутри переменной произвольного типа. Если переменная в данный момент не имеет фактического типа, функция вернет NULL.

Примечания

Эта функция, в основном, используется для получения строки фактического типа переменной произвольного типа – базовый адрес переменной фактического типа обычно можно получить и без вызова функций.

Динамическая строка, записанная функцией rdsGetRuntimeTypeData по указателю из параметра pRealTypeStr (если он не равен NULL), должна быть обязательно освобождена функцией rdsFree.

Пример

Пример использования функции rdsGetRuntimeTypeData приведен в §2.5.6 руководства программиста, там же описывается принцип размещения переменных произвольного типа в памяти.

См. также

rdsClearRuntimeType, rdsSetRuntimeType, rdsFree.