PTLib  Version 2.10.4
PDynaLink Class Reference

A dynamic link library. More...

#include <dynalink.h>

Inheritance diagram for PDynaLink:
PObject

List of all members.

Public Member Functions

Construction
 PDynaLink ()
 Create a new dyna-link, loading the specified module.
 PDynaLink (const PString &name)
 Create a new dyna-link, loading the specified module.
 ~PDynaLink ()
 Destroy the dyna-link, freeing the module.

Protected Attributes

PString m_lastError
void * dllHandle
PString name

Load/Unload function

virtual PBoolean Open (const PString &name)
virtual void Close ()
 Close the dyna-link library.
virtual PBoolean IsLoaded () const
 Dyna-link module is loaded and may be accessed.
virtual PString GetName (PBoolean full=false) const
 Get the name of the loaded library.
static PString GetExtension ()
 Get the extension used by this platform for dynamic link libraries.

DLL entry point functions

typedef void(* Function )()
 Primitive pointer to a function for a dynamic link module.
PBoolean GetFunction (PINDEX index, Function &func)
 Get a pointer to the function in the dynamically loadable module.
PBoolean GetFunction (const PString &name, Function &func)
 Get a pointer to the function in the dynamically loadable module.
const PStringGetLastError () const

Detailed Description

A dynamic link library.

This allows the loading at run time of code modules for use by an application. MacOS X/darwin supports plugins linked as object file image (linked with the -bundle arg to ld) or dynamic libraries (-dynamic). On all Unix platforms the file name should end in ".so". On Windows the filename should end in ".dll"


Member Typedef Documentation

typedef void(* PDynaLink::Function)()

Primitive pointer to a function for a dynamic link module.


Constructor & Destructor Documentation

Create a new dyna-link, loading the specified module.

The first, parameterless, form does load a library.

PDynaLink::PDynaLink ( const PString name)

Create a new dyna-link, loading the specified module.

The first, parameterless, form does load a library.

Parameters:
nameName of the dynamically loadable module.

Destroy the dyna-link, freeing the module.


Member Function Documentation

virtual void PDynaLink::Close ( ) [virtual]

Close the dyna-link library.

static PString PDynaLink::GetExtension ( ) [static]

Get the extension used by this platform for dynamic link libraries.

Returns:
String for file extension.

Referenced by PLoadPluginDirectory().

PBoolean PDynaLink::GetFunction ( PINDEX  index,
Function func 
)

Get a pointer to the function in the dynamically loadable module.

Returns:
true if function was found.
Parameters:
indexOrdinal number of the function to get.
funcRefrence to point to function to get.
PBoolean PDynaLink::GetFunction ( const PString name,
Function func 
)

Get a pointer to the function in the dynamically loadable module.

Returns:
true if function was found. Return OS error code for last operation
Parameters:
nameName of the function to get.
funcRefrence to point to function to get.
const PString& PDynaLink::GetLastError ( ) const [inline]

References m_lastError.

virtual PString PDynaLink::GetName ( PBoolean  full = false) const [virtual]

Get the name of the loaded library.

If the library is not loaded this may return an empty string.

If full is true then the full pathname of the library is returned otherwise only the name part is returned.

Returns:
String for the library name.
Parameters:
fullFlag for full or short path name
virtual PBoolean PDynaLink::IsLoaded ( ) const [virtual]

Dyna-link module is loaded and may be accessed.

virtual PBoolean PDynaLink::Open ( const PString name) [virtual]
Parameters:
nameName of the dynamically loadable module.

Member Data Documentation

void* PDynaLink::dllHandle [protected]

Referenced by GetLastError().

PString PDynaLink::name [protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines