diff options
Diffstat (limited to 'ACE/ace/DLL_Manager.h')
-rw-r--r-- | ACE/ace/DLL_Manager.h | 46 |
1 files changed, 38 insertions, 8 deletions
diff --git a/ACE/ace/DLL_Manager.h b/ACE/ace/DLL_Manager.h index 279d48cf9d4..ca94edf3e13 100644 --- a/ACE/ace/DLL_Manager.h +++ b/ACE/ace/DLL_Manager.h @@ -68,14 +68,44 @@ public: const ACE_TCHAR *dll_name () const; /** - * This method opens and dynamically links @a dll_name. The default - * mode is @c RTLD_LAZY, which loads identifier symbols but not the - * symbols for functions, which are loaded dynamically on-demand. - * Other supported modes include: @c RTLD_NOW, which performs all - * necessary relocations when @a dll_name is first loaded and - * @c RTLD_GLOBAL, which makes symbols available for relocation - * processing of any other DLLs. Returns -1 on failure and 0 on - * success. + * This method opens and dynamically links a library/DLL. + * @param dll_name The filename or path of the DLL to load. ACE will + * attempt to apply the platform's standard library/DLL prefixes + * and suffixes, allowing a simple, unadorned name to be passed + * regardless of platform. The set of name transforms is listed + * below. A @i decorator is a platform's name designator for a debug + * vs release build. For example, on Windows it is usually "d". + * @li Name + decorator + suffix + * @li Name + suffix + * @li Prefix + name + decorator + suffix + * @li Prefix + name + suffix + * @li Name + * Note that the transforms with @i decorator will be avoided if + * ACE is built with the @c ACE_DISABLE_DEBUG_DLL_CHECK config macro. + * + * @Note There is another mode for locating library/DLL files that + * was used in old versions of ACE. The alternate method builds + * more combinations of pathname by combining the names transforms + * above with locations listed in the platform's standard "path" + * locations (e.g., @c LD_LIBRARY_PATH). It can be enabled by building + * ACE with the @c ACE_MUST_HELP_DLOPEN_SEARCH_PATH config macro. + * Use of this option is discouraged since it avoids the standard + * platform search options and security mechanisms. + * + * @param open_mode Flags to alter the actions taken when loading the DLL. + * The possible values are: + * @li @c RTLD_LAZY (this the default): loads identifier symbols but + * not the symbols for functions, which are loaded dynamically + * on demand. + * @li @c RTLD_NOW: performs all necessary relocations when + * @a dll_name is first loaded + * @li @c RTLD_GLOBAL: makes symbols available for relocation + * processing of any other DLLs. + * @param handle If a value other than @c ACE_INVALID_HANDLE is supplied, + * this object is assigned the specified handle instead of attempting + * to open the specified @a dll_name. + * @retval -1 On failure + * @retval 0 On success. */ int open (const ACE_TCHAR *dll_name, int open_mode, |