PDynaLink Class Reference

A dynamic link library. More...

`#include <dynalink.h>`

Inheritance diagram for PDynaLink:

## Public Member Functions

Construction
| PDynaLink ()
| Create a new dyna-link, loading the specified module. More...
| PDynaLink (const PString &name)
| Create a new dyna-link, loading the specified module. More...
| ~PDynaLink ()
| Destroy the dyna-link, freeing the module. More...
Public Member Functions inherited from PObject
virtual | ~PObject ()
virtual PObject * | Clone () const
| Create a copy of the class on the heap. More...
virtual PINDEX | HashFunction () const
| This function yields a hash value required by the `PDictionary` class. More...
virtual Comparison | Compare (const PObject &obj) const
| Compare the two objects and return their relative rank. More...
virtual Comparison | CompareObjectMemoryDirect (const PObject &obj) const
| Determine the byte wise comparison of two objects. More...
bool | operator== (const PObject &obj) const
| Compare the two objects. More...
bool | operator!= (const PObject &obj) const
| Compare the two objects. More...
bool | operator< (const PObject &obj) const
| Compare the two objects. More...
bool | operator> (const PObject &obj) const
| Compare the two objects. More...
bool | operator<= (const PObject &obj) const
| Compare the two objects. More...
bool | operator>= (const PObject &obj) const
| Compare the two objects. More...
virtual const char * | GetClass (unsigned ancestor=0) const
| Get the current dynamic type of the object instance. More...
PBoolean | IsClass (const char *cls) const
virtual PBoolean | InternalIsDescendant (const char *clsName) const
| Determine if the dynamic type of the current instance is a descendent of the specified class. More...
virtual void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream. More...
virtual void | ReadFrom (istream &strm)
| Input the contents of the object from the stream. More...

## 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. More...
virtual PBoolean | IsLoaded () const
| Dyna-link module is loaded and may be accessed. More...
virtual PString | GetName (PBoolean full=false) const
| Get the name of the loaded library. More...
static PString | GetExtension ()
| Get the extension used by this platform for dynamic link libraries. More...

## DLL entry point functions

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

## Additional Inherited Members

Public Types inherited from PObject
enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
| Result of the comparison operation performed by the `Compare()` function. More...
Static Public Member Functions inherited from PObject
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
| Internal function caled from CompareObjectMemoryDirect() More...
static const char * | Class ()
| Get the name of the class as a C string. More...
Protected Member Functions inherited from PObject
| PObject ()
| Constructor for PObject, made protected so cannot ever create one on its own. More...

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

## Function

typedef void(* PDynaLink::Function) ()

Primitive pointer to a function for a dynamic link module.

## Constructor & Destructor Documentation

## PDynaLink() [1/2]

PDynaLink::PDynaLink | ( |  | ) |

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

The first, parameterless, form does load a library.

## PDynaLink() [2/2]

PDynaLink::PDynaLink | ( | const PString & | name | ) |

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

The first, parameterless, form does load a library.

Parameters

  name | Name of the dynamically loadable module.

## ~PDynaLink()

PDynaLink::~PDynaLink | ( |  | ) |

Destroy the dyna-link, freeing the module.

## Member Function Documentation

## Close()

virtual void PDynaLink::Close | ( |  | ) |

virtual

Close the dyna-link library.

## GetExtension()

static PString PDynaLink::GetExtension | ( |  | ) |

static

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

Returns
  String for file extension.

Referenced by PLoadPluginDirectory().

## GetFunction() [1/2]

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

  index | Ordinal number of the function to get.
  func | Refrence to point to function to get.

## GetFunction() [2/2]

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

  name | Name of the function to get.
  func | Refrence to point to function to get.

## GetLastError()

const PString& PDynaLink::GetLastError | ( |  | ) | const

inline

References m_lastError.

## GetName()

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

  full | Flag for full or short path name

## IsLoaded()

virtual PBoolean PDynaLink::IsLoaded | ( |  | ) | const

virtual

Dyna-link module is loaded and may be accessed.

## Open()

virtual PBoolean PDynaLink::Open | ( | const PString & | name | ) |

virtual

Parameters

  name | Name of the dynamically loadable module.

## Member Data Documentation

## dllHandle

void* PDynaLink::dllHandle

protected

## m_lastError

PString PDynaLink::m_lastError

protected

Referenced by GetLastError().

## name

PString PDynaLink::name

protected

The documentation for this class was generated from the following file:

- dynalink.h