Home > Getting Started Guide > Architecture > Object Libraries
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() ENTITYmust be changed for Release R10 to:
#define THIS() REFINEMENT
#define THIS_LIB FCT
#define PARENT() ENTITY
#define PARENT_LIB KERN[Top]
© 1989-2007 Spatial Corp., a Dassault Systèmes company. All rights reserved.