Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.2. Управление работой RDS и функции общего назначения
А.5.2.7. Макросы компиляции для 32-хбитной и 64-хбитной версии RDS
В «RdsDef.h» описан набор макросов, указывающих на то, для какой версии RDS компилируется программа – для тридцатидвухбитной или шестидесятичетырехбитной. Также определены макросы, относящиеся к конкретным версиям, их значения не зависят от того, какая версия используется при компиляции. Все эти макросы не имеют параметров.
| RDS_WIN32 | Если это определение присутствует перед включением «RdsDef.h», будет считаться, что программа компилируется для тридцатидвухбитной версии RDS. Если не присутствуют определения ни для RDS_WIN32, ни для RDS_WIN64, определение одной из этих констант будет добавлено принудительно в зависимости от текущих описаний компилятора. |
| RDS_WIN64 | Если это определение присутствует перед включением «RdsDef.h», будет считаться, что программа компилируется для шестидесятичетырехбитной версии RDS. Если не присутствуют определения ни для RDS_WIN32, ни для RDS_WIN64, определение одной из этих констант будет добавлено принудительно в зависимости от текущих описаний компилятора. |
| RDS_WIN32_NAME | ASCII-строка условного названия для тридцатидвухбитной версии, которую можно использовать, например, в качестве имени раздела в INI-файле. Имеет значение "Win32". |
| RDS_WIN64_NAME | ASCII-строка условного названия для шестидесятичетырехбитной версии, которую можно использовать, например, в качестве имени раздела в INI-файле. Имеет значение "Win64". |
| RDS_WIN32_ID | Имеет значение 0, может использоваться в качестве индекса в каких-либо массивах параметров версий для ссылки на тридцатидвухбитной версию RDS. |
| RDS_WIN64_ID | Имеет значение 1, может использоваться в качестве индекса в каких-либо массивах параметров версий для ссылки на шестидесятичетырехбитной версию RDS. |
| RDS_PLATFORMS_COUNT | Имеет значение 2. Может использоваться в качестве размера массива параметров версий. |
| RDS_PLATFORMNAME | ASCII-строка условного названия той версии RDS, для которой компилируется программа. В зависимости от версии принимает значения RDS_WIN32_NAME или RDS_WIN64_NAME. |
| RDS_PLATFORMID | Индекс версии RDS, для которой крмпилируется программа. В зависимости от версии принимает значения RDS_WIN32_ID или RDS_WIN64_ID. |
Примечания
Константу RDS_WIN32 или RDS_WIN64, при необходимости, следует определять непосредственно перед включением файла «RdsDef.h», например:
#include <windows.h> #define RDS_WIN32 // Компилируется для 32-битной версии #include <RdsDef.h> // Подготовка описаний сервисных функций #define RDS_SERV_FUNC_BODY GetInterfaceFunctions #include <RdsFunc.h> …
Можно также определить одну из этих констант в параметрах командной строки при вызове компилятора.
Если не включить описания RDS_WIN32 и RDS_WIN64, то внутри «RdsDef.h» они будут определены в зависимости от наличия стандартной константы _WIN64, которую компиляторы (в частности, GCC) определяют при компиляции шестидесятичетырехбитной версии программы.
Пример
Пример использования одного из этих макросов (RDS_PLATFORMNAME) приведен в §3.2 руководства программиста.