Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.14. Общие функции работы с переменными блока
А.5.14.2. rdsBlockVarToMem – записать значение переменной блока в буфер в памяти
Функция rdsBlockVarToMem записывает значение какой-либо статической переменной указанного блока или всей его структуры переменных в динамически отводимую область памяти. Это значение может быть загружено обратно в переменную вызовом rdsBlockVarFromMem.
LPVOID RDSCALL rdsBlockVarToMem( RDS_BHANDLE Block, // Идентификатор блока int VarNum, // Номер переменной или -1 BOOL Check, // Записать данные типа переменной int *pSize // Возвращаемый размер данных );
Тип указателя на эту функцию
RDS_pVBhIBpI
Параметры
- Block (RDS_BHANDLE)
- Идентификатор блока, значение переменной которого нужно записать. Если в этом параметре передано значение NULL, функция будет работать с блоком, из модели которого она вызвана.
- VarNum (int)
- Порядковый номер переменной (начиная с нуля), значение которой нужно записать, или −1, если нужно записать значения всех переменных блока.
- Check (BOOL)
- TRUE – записывать вместе со значением переменной информацию о ее типе для проверки при загрузке функцией rdsBlockVarFromMem. FALSE – не записывать информацию о типе (данные займут меньше места, но надежность программы снизится).
- pSize (int*)
- Указатель на целую переменную, в которую функция запишет размер (в байтах) динамически отведенной области памяти.
Возвращаемое значение
Указатель на динамически отведенную область памяти, содержащую записанное значение переменной (или переменных, если в VarNum передано −1).
Примечания
Эта функция, вместе с rdsBlockVarFromMem, позволяет сохранять значение переменной блока в память и восстанавливать его оттуда. Такую область памяти можно скопировать, сохранить на диск или передать по сети с тем, чтобы позже (или в другой схеме) считать эту область и восстановить из нее значение переменной. Динамическая область памяти, созданная этой функцией, должна быть обязательно освобождена вызовом rdsFree.
Пример
Пример использования функции rdsBlockVarToMem приведен в §2.16.1 руководства программиста.
См. также