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

Описания RDS

Приложения

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

А.3. События модуля автокомпиляции и связанные с ними структуры

А.3.4. События модуля автокомпиляции

А.3.4.16. RDS_COMPM_PREPARE – подготовка модели к компиляции

# Приложения

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

### А.3. События модуля автокомпиляции и связанные с ними структуры

#### А.3.4. События модуля автокомпиляции

##### А.3.4.16. RDS_COMPM_PREPARE – подготовка модели к компиляции

Первый параметр функции модуля (int CallMode)

Константа RDS_COMPM_PREPARE.

Третий параметр функции модуля (void *ExtParam)

Указатель на структуру RDS_COMPPREPAREDATA, содержащую указатель на данные модели.

Возвращаемое функцией модуля значение

Не используется, можно возвращать любое значение.

Примечания

Реакция на событие RDS_COMPM_PREPARE вызывается для каждой модели, обслуживаемой данным модулем, для проверки необходимости компиляции этой модели и для подготовки ее к компиляции. Если модель не требуется компилировать (то есть файл DLL, соответствующий этой модели, существует, и текст модели не изменялся с момента последней компиляции), функция модуля должна в этой реакции присвоить полю Valid структуры данных модели RDS_COMPMODELDATA значение TRUE (исходно туда заносится значение FALSE). Если после реакции на все события RDS_COMPM_PREPARE хотя бы у одной модели поле Valid будет иметь значение FALSE, возникнет событие RDS_COMPM_COMPILE, в реакции на которое функция модуля должна будет скомпилировать модель. Если компиляция моделей производится по команде пользователя «Система | Перекомпилировать все модели», установка поля Valid будет игнорироваться: независимо от него в параметрах события RDS_COMPM_COMPILE будут указаны все модели, обслуживаемые данным модулем.

Реагируя на событие RDS_COMPM_PREPARE, функция модуля должна, помимо установки поля Valid в структуре данных модели, указать имя файла DLL, который будет создан в результате компиляции, и имя экспортированной функции модели блока в этом файле. Для этого она должна вызвать сервисную функцию rdscompSetModelFunction.

В параметре ExtParam при реакции на событие RDS_COMPM_PREPARE передается указатель на структуру RDS_COMPPREPAREDATA:

      typedef struct {
        RDS_PCOMPMODELDATA Model; // Данные модели
        BOOL Rebuild;             // Принудительная компиляция
      } RDS_COMPPREPAREDATA;
      typedef RDS_COMPPREPAREDATA *RDS_PCOMPPREPAREDATA;

Поля структуры

Model(RDS_PCOMPMODELDATA)
  Указатель на структуру данных модели RDS_COMPMODELDATA, которую нужно подготовить к компиляции. В этой структуре функция модуля должна присвоить полю Valid значение TRUE, если модель компилировать не нужно.
Rebuild(BOOL)
  TRUE, если пользователь выбрал принудительную компиляцию всех моделей схемы, FALSE в противном случае.

Пример

Пример реакции на событие RDS_COMPM_PREPARE приведен в §3.4 руководства программиста.

См. также

RDS_COMPM_COMPILE, RDS_COMPMODELDATA, rdscompSetModelFunction.