Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.35. Функции поддержки автоматической компиляции моделей
А.5.35.14. rdscompSetBlockModel – подключить модель к блоку
Функция rdscompSetBlockModel подключает к указанному блоку автоматически компилируемую модель с указанными параметрами.
int RDSCALL rdscompSetBlockModelA( RDS_BHANDLE Block // Идентификатор блока RDSCSTR CompModuleName, // DLL модуля автокомпиляции (UTF8) RDSCSTR CompModuleFunc, // Функция модуля автокомпиляции (UTF8) RDSCSTR ModelName, // Имя модели (UTF8) RDSCSTR AltModelName // Альтернативное имя модели (UTF8) ); int RDSCALL rdscompSetBlockModelW( RDS_BHANDLE Block // Идентификатор блока RDSWCSTR CompModuleName, // DLL модуля автокомпиляции (UTF16) RDSWCSTR CompModuleFunc, // Функция модуля автокомпиляции (UTF16) RDSWCSTR ModelName, // Имя модели (UTF16) RDSWCSTR AltModelName // Альтернативное имя модели (UTF16) ); // Функция-псевдоним int RDSCALL rdscompSetBlockModel( RDS_BHANDLE Block // Идентификатор блока RDSXCSTR CompModuleName, // DLL модуля автокомпиляции (кодировка по умолчанию) RDSXCSTR CompModuleFunc, // Функция модуля автокомпиляции (кодировка по умолчанию) RDSXCSTR ModelName, // Имя модели (кодировка по умолчанию) RDSXCSTR AltModelName // Альтернативное имя модели (кодировка по умолчанию) );
Тип указателя на эту функцию
RDS_IBhSSSS (для UTF8) или RDS_IBhWsWsWsWs (для UTF16)
Параметры
- Block (RDS_BHANDLE)
- Идентификатор блока, к которому подключается модель.
- CompModuleName (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку с именем файла DLL, в которой находится модуль автокомпиляции, который будет обслуживать подключаемую модель. Имя файла может содержать символические обозначения стандартных папок RDS. Если в имени файла нет пути, он будет считаться находящимся в одной папке с загруженной схемой. Для отключения автокомпилируемой модели от блока в этом параметре можно передать NULL (остальные параметры при этом игнорируются).
- CompModuleFunc (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку с именем функции модуля автокомпиляции, экспортированной из файла CompModuleName. RDS будет использовать эту строку для поиска этой функции в DLL, передавая ее в параметре функции Windows API GetProcAddress.
- ModelName (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку с именем подключаемой модели.
- AltModelName (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку с альтернативным именем подключаемой модели, или NULL, если у модели нет альтернативного имени.
Возвращаемое значение
Одна из констант RDS_FRESULT_*, указывающая на результат выполнения функции:
| RDS_FRESULT_OK | Модель подключена. |
| RDS_FRESULT_ERROR | Ошибка (нет указанного файла DLL, не экспортирована указанная функция и т.п.). |
| RDS_FRESULT_DELAYED | Выполнение функции отложено. |
Примечания
Эта функция информирует RDS о необходимости подключить к блоку Block новую автоматически компилируемую модель или отключить ее совсем (для этого в CompModuleName передается NULL).
Если в момент вызова функции RDS находится в режиме расчета, функция вызвана из какой-либо реакции блока Block или модуля, обслуживающего именно эту модель, подключение новой модели будет отложено до завершения очередного такта расчета или соответствующей реакции, при этом функция вернет константу RDS_FRESULT_DELAYED.
Наиболее часто встречающееся применение этой функции – добавление в редактор модели возможности выделения одного из блоков и подключения к нему альтернативной версии модели, изменения в которой не будут влиять на остальные блоки.