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

Описания RDS

Приложения

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

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

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

А.5.14.11. rdsGetBlockVarBase – базовый адрес переменной блока по ее номеру

# Приложения

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

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

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

##### А.5.14.11. rdsGetBlockVarBase – базовый адрес переменной блока по ее номеру

Функция rdsGetBlockVarBase возвращает указатель на начало данных переменной с указанным номером в дереве переменных блока и размер области данных этой переменной.

      LPVOID RDSCALL rdsGetBlockVarBase(
        RDS_BHANDLE Block,  // Идентификатор блока
        int VarNum,         // Номер переменной
        int *pSize          // Возвращаемый размер
      );

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

RDS_pVBhIpI

Параметры

Block(RDS_BHANDLE)
  Идентификатор блока, в котором нужно найти переменную.
VarNum(int)
  Порядковый номер переменной (начиная с нуля).
pSize(int*)
  Указатель на целую переменную, в которую функция запишет число байтов, которое данные этой переменной занимают в дереве блока. Добавив к возвращенному функцией адресу это число, можно получить начало области данных следующей переменной. Если вызывающей программе не нужен размер области данных переменной, в этом параметре можно передать NULL.

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

Указатель на начало области данных переменной с указанным номером, или NULL, если такой переменной нет.

Примечания

Чаще всего базовые адреса переменных вычисляются непосредственно в модели блока по значению поля VarTreeData структуры данных блока RDS_BLOCKDATA – диаграммы размещения переменных в памяти и способ доступа к их данным подробно рассматриваются в §2.5 руководства программиста. Функция rdsGetBlockVarBase позволяет получить базовый адрес переменной указанного блока в тех случаях, когда структура данных этого блока ко какой-либо причине недоступна.

Пример

Пример использования функции приведен в §2.7.4 руководства программиста.

См. также

rdsGetBlockVar, rdsGetRuntimeTypeData.