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

Описания RDS

Приложения

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

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

А.5.35. Функции поддержки автоматической компиляции моделей

А.5.35.14. rdscompSetBlockModel – подключить модель к блоку

# Приложения

## Приложение А. Функции, константы и структуры 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.

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