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

Описания RDS

Приложения

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

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

А.3.2. RDS_COMPMODULEDATA – структура данных модуля

# Приложения

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

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

#### А.3.2. RDS_COMPMODULEDATA – структура данных модуля

Структура данных модуля автокомпиляции RDS_COMPMODULEDATA содержит основные параметры этого модуля, которые нужны его функции для реакции на различные события. Эта структура создается RDS перед первым вызовом функции модуля автокомпиляции и хранится в памяти все время его существования, то есть до тех пор, пока последняя модель, обслуживаемая этим модулем, не будет отключена от последнего связанного с ней блока схемы. Общая структура данных, используемых для автоматической компиляции моделей, подробно рассмотрена в главе 3 руководства программиста.

      typedef struct {
        RDS_COMPHANDLE Module;   // Идентификатор модуля
        LPVOID ModuleData;       // Адрес личной области данных модуля
        RDSCSTR DllFullPathA;    // Полный путь к DLL модуля (UTF8)
        RDSWCSTR DllFullPathW;   // Полный путь к DLL модуля (UTF16)
        //RDSXCSTR DllFullPath;  // Полный путь к DLL модуля (поле-псевдоним)
        RDSCSTR DllFuncNameA;    // Имя функции DLL модуля (UTF8)
        RDSWCSTR DllFuncNameW;   // Имя функции DLL модуля (UTF16)
        //RDSXCSTR DllFuncName;  // Имя функции DLL модуля (поле-псевдоним)
        RDSINT32 NModels;        // Число моделей, связанных в данный
                                 // момент с этим модулем
        RDSCSTR DataFileA;       // Предлагаемое имя файла настроек (UTF8)
        RDSWCSTR DataFileW;      // Предлагаемое имя файла настроек (UTF16)
        //RDSXCSTR DataFile;     // Предлагаемое имя файла настроек (поле-псевдоним)
        RDSCSTR ModelFormatA;    // Уникальный идентификатор формата модели (UTF8)
        RDSWCSTR ModelFormatW;   // Уникальный идентификатор формата модели (UTF16)
        //RDSXCSTR ModelFormat;  // Уникальный идентификатор формата модели (поле-псевдоним)
      } RDS_COMPMODULEDATA;
      typedef RDS_COMPMODULEDATA *RDS_PCOMPMODULEDATA;

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

Module(RDS_COMPHANDLE)
  Уникальный идентификатор данного модуля. Тип RDS_COMPHANDLE используется в RDS для указания на конкретный модуль автокомпиляции.
ModuleData(LPVOID)
  Указатель на личную область данных модуля. Перед самым первым вызовом функции данного модуля RDS записывает в это поле значение NULL и больше к нему не обращается. Если модулю требуется отводить память под свои нужды, он может записать указатель на отведенную область памяти в это поле. В этом случае освободить отведенную область тоже должна будет функция модуля – обычно это делается в реакции на событие RDS_COMPM_CLEANUP.
DllFullPathA(RDSCSTR),DllFullPathW(RDSWCSTR),DllFullPath(RDSXCSTR)
  Полный путь к DLL, в которой находится функция данного модуля автокомпиляции. Может использоваться для считывания каких-либо параметров, хранящихся в файлах в одной папке с DLL модуля. Функция модуля не должна изменять эту строку.
DllFuncNameA(RDSCSTR),DllFuncNameW(RDSWCSTR),DllFuncName(RDSXCSTR)
  Экспортированное имя функции данного модуля автокомпиляции. Функция модуля не должна изменять эту строку.
NModels(RDSINT32)
  Общее число моделей, подключенных в данный момент к этому модулю автокомпиляции. Вместе с сервисной функцией rdscompGetModelData может использоваться для организации цикла по всем моделям, обслуживаемым данным модулем. Функция модуля не должна изменять это число.
DataFileA(RDSCSTR),DataFileW(RDSWCSTR),DataFile(RDSXCSTR)
  Автоматически сформированное RDS имя файла для хранения настроек модуля. Это имя гарантированно не будет совпадать с другими используемыми RDS именами файлов.
ModelFormatA(RDSCSTR),ModelFormatW(RDSWCSTR),ModelFormat(RDSXCSTR)
  Уникальная строка, описывающая формат текста моделей, поддерживаемых модулем. Эта строка считывается из файла описания модуля, с помощью которого модуль регистрируется в RDS.

См. также

RDS_COMPM_INIT, RDS_COMPM_CLEANUP, rdscompGetModelData.