|
Macros are used to help set up libraries for use as shared/DLLs.
|
|
|
Note
|
The string <MODULE> should be substituted with the shared library module identifier listed in the Type column of the appropriate library table in section Libraries. The string <module> should be replaced with the lowercase version of this.
|
|
|
A
dcl_<module>.h header file exists for each component (module) that is to be available as a DLL. This header file defines the macro
DECL_<MODULE> based on the settings of
ACIS_DLL and
EXPORT_<MODULE>. The
DECL_<MODULE> macro is used to indicate whether a symbol is being exported or imported from a DLL.
|
|
|
A module name argument exists for each of the following macros (use
NONE as the module name argument if the symbol will not be in a DLL):
|
|
|
ATTRIB_FUNCTIONS
|
DISPATCH_DECL
|
ENTITY_FUNCTIONS
|
|
LIST
|
MASTER_ATTRIB_DECL
|
MASTER_ENTITY_DECL
|
|
MODULE_DEF
|
MODULE_REF
|
|
|
For example, in Release 2.1, if the
MODULE_DEF macro was used as:
|
|
|
MODULE_DEF("api")
|
|
|
it must be changed for Release 3.0 to:
|
|
|
MODULE_DEF("api", KERN)
|
|
|
The
DECL_<MODULE> macro or a module argument to the macros listed above must be used to allow a function or global variable defined in a lower library to be used by higher libraries and/or applications.
|
|
|
THIS_LIB and
PARENT_LIB macro definitions are now required wherever
THIS() and
PARENT() macro definitions are required for entity declarations and implementation. For example, the following definition for Release 2.1:
|
|
|
#define THIS() REFINEMENT
|
|
#define PARENT() ENTITY
|
|
|
must be changed for Release
R10 to:
|
|
|
#define THIS() REFINEMENT
|
|
#define THIS_LIB FCT
|
|
#define PARENT() ENTITY
|
|
#define PARENT_LIB KERN
|