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

Описания RDS

Приложения

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

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

А.5.2. Управление работой RDS и функции общего назначения

А.5.2.1. Макросы RDS_DWORDVERDATE и RDS_DWORDVERDATESHORT – преобразование даты в беззнаковое целое для отображения вместе с версией

# Приложения

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

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

#### А.5.2. Управление работой RDS и функции общего назначения

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

##### А.5.2.1. Макросы RDS_DWORDVERDATE и RDS_DWORDVERDATESHORT – преобразование даты в беззнаковое целое для отображения вместе с версией

Макрос RDS_DWORDVERDATE предназначен для описания даты и времени создания DLL с моделью в формате беззнакового целого (DWORD). Этот формат используется в окне информации о схеме на вкладках «используемые DLL» и «компиляция». Дополнительно определен макрос RDS_DWORDVERDATESHORT, описывающий только дату без времени

      RDS_DWORDVERDATE(
        year,    // Год
        month,   // Месяц
        day,     // День
        hour,    // Час
        minute,  // Минута
        quarter  // Четверть минуты (0-3)
      )
      RDS_DWORDVERDATESHORT(
        year,    // Год
        month,   // Месяц
        day      // День
      )

Определения

      #define RDS_DWORDVERDATE(year,month,day,hour,minute,quarter) (  \
        (((((year)-2000))&0x3ff)<<22) | \
        (((month)&0xf)<<18) | \
        (((day)&0x1f)<<13) | \
        (((hour)&0x1f)<<8) | \
        (((minute)&0x3f)<<2) | \
        ((quarter)&3) )
      #define RDS_DWORDVERDATESHORT(year,month,day) (  \
        (((((year)-2000))&0x3ff)<<22) | \
        (((month)&0xf)<<18) | \
        (((day)&0x1f)<<13) )

Параметры

year(целое число)
  Год даты сборки. Нельзя указывать год раньше 2000.
month(целое число)
  Месяц даты сборки.
day(целое число)
  День месяца даты сборки.
hour(целое число)
  Час времени сборки или 0.
minute(целое число)
  Минута времени сборки или 0.
quarter(целое число)
  Начинающийся с нуля номер четвертьминутного интервала времени сборки или 0.

Возвращаемое значение

Число типа DWORD, собранное из параметров макроса.

Примечания

Если параметры hour, minute и quarter макроса RDS_DWORDVERDATE имеют нулевые значения, время считается не указанным.

Макросы RDS_DWORDVERDATE и RDS_DWORDVERDATESHORT чаще всего встречаются в главной функции DLL, где они используются для сообщения RDS информации о версии загруженной DLL.

Пример

      #include <windows.h>
      #include <RdsDef.h>

      // Подготовка описаний сервисных функций
      #define RDS_SERV_FUNC_BODY GetInterfaceFunctions
      #include <RdsFunc.h>

      // Значение-индикатор ошибки вычислений
      double DoubleErrorValue;

      // Главная функция DLL
      int WINAPI DllMain(HINSTANCE /*hinst*/,
                         unsigned long reason,
                         void* /*lpReserved*/)
      { if(reason==DLL_PROCESS_ATTACH) // Загрузка DLL
          { // Получение доступа к функциям
            if(GetInterfaceFunctions())
              { rdsGetHugeDouble(&DoubleErrorValue);
                // Информация о версии
                rdsReportVersion(RDS_INTVERSION(2,0,11),            // Версия 2.0.11
                                 RDS_DWORDVERDATESHORT(2022,9,28)); // Сборка 28.09.2022
              }
            else
              RDS_SERV_ERROR_MSGW // Сообщение: старая версия RDS
          }
        return 1;
      }

См. также

Главная функция DLL, rdsReportVersion, RDS_INTVERSION.