idlc 1.5.14
Interface Definition Language Compiler
|
Macros | |
#define | IDL_BEGIN |
Begins a C-linkage declaration block. | |
#define | IDL_END |
Ends a C-linkage declaration block. | |
#define | idl_api |
Controls symbol visibility for shared library builds. | |
#define | IDL_FLAGS(idl_enum_t) |
Enables bit flag operations for enumerations (C++ only). | |
#define | IDL_TYPE(idl_name) |
Declares an opaque handle type. | |
Version Components. | |
Individual components of the library version. | |
#define | IDL_VERSION_MAJOR 1 |
Major version number (API-breaking changes). | |
#define | IDL_VERSION_MINOR 5 |
Minor version number (backwards-compatible additions). | |
#define | IDL_VERSION_MICRO 14 |
Micro version number (bug fixes and patches). | |
Version Utilities. | |
Macros for working with version numbers. | |
#define | IDL_VERSION_ENCODE(major, minor, micro) |
Encodes version components into a single integer. | |
#define | IDL_VERSION_STRINGIZE_(major, minor, micro) |
Internal macro for string version generation. | |
#define | IDL_VERSION_STRINGIZE(major, minor, micro) |
Creates version string from components. | |
Current Version. | |
Macros representing the current library version. | |
#define | IDL_VERSION |
Encoded library version as integer. | |
#define | IDL_VERSION_STRING |
Library version as human-readable string. | |
#define idl_api |
Controls symbol visibility for shared library builds.
This macro is used to control symbol visibility when building or using the library. On Windows (MSVC) with dynamic linking (non-static build), it expands to __declspec(dllimport)
. In all other cases (static builds or non-Windows platforms), it expands to nothing. This allows proper importing of symbols from DLLs on Windows platforms.
IDL_STATIC_BUILD
for static library configuration. #define IDL_BEGIN |
Begins a C-linkage declaration block.
In C++, expands to extern "C" {
to ensure C-compatible symbol naming. In pure C environments, expands to nothing.
#define IDL_END |
#define IDL_FLAGS | ( | idl_enum_t | ) |
Enables bit flag operations for enumerations (C++ only).
Generates overloaded bitwise operators for type-safe flag manipulation:
[in] | idl_enum_t | Enumeration type to enhance with flag operations. |
#define IDL_TYPE | ( | idl_name | ) |
Declares an opaque handle type.
Creates a typedef for a pointer to an incomplete struct type, providing type safety while hiding implementation details.
[in] | idl_name | Base name for the type (suffix _t will be added). |
#define IDL_VERSION |
Encoded library version as integer.
Combined version value suitable for numeric comparisons. Use IDL_VERSION_STRING for human-readable format.
#define IDL_VERSION_ENCODE | ( | major, | |
minor, | |||
micro ) |
Encodes version components into a single integer.
Combines major, minor, and micro versions into a 32-bit value:
[in] | major | Major version number. |
[in] | minor | Minor version number. |
[in] | micro | Micro version number. |
#define IDL_VERSION_MAJOR 1 |
Major version number (API-breaking changes).
#define IDL_VERSION_MICRO 14 |
Micro version number (bug fixes and patches).
#define IDL_VERSION_MINOR 5 |
Minor version number (backwards-compatible additions).
#define IDL_VERSION_STRING |
Library version as human-readable string.
Version string in "MAJOR.MINOR.MICRO" format (e.g., "1.5.14"). Use IDL_VERSION for numeric comparisons.
#define IDL_VERSION_STRINGIZE | ( | major, | |
minor, | |||
micro ) |
Creates version string from components.
Generates a string literal from version components (e.g., 1, 5, 14 -> "1.5.14").
[in] | major | Major version number. |
[in] | minor | Minor version number. |
[in] | micro | Micro version number. |
#define IDL_VERSION_STRINGIZE_ | ( | major, | |
minor, | |||
micro ) |
Internal macro for string version generation.
Helper macro that stringizes version components (e.g., 1, 5, 14 -> "1.5.14").
[in] | major | Major version number. |
[in] | minor | Minor version number. |
[in] | micro | Micro version number. |