Приложения
Приложение А. Функции, константы и структуры 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 руководства программиста, там же описывается принцип размещения переменных произвольного типа в памяти.
См. также