Library Macros


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 the 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

[Top]