Poco

class SharedLibrary

Library: Foundation
Package: SharedLibrary
Header: Poco/SharedLibrary.h

Description

The SharedLibrary class dynamically loads shared libraries at run-time.

Inheritance

Direct Base Classes: SharedLibraryImpl

All Base Classes: SharedLibraryImpl

Member Summary

Member Functions: getPath, getSymbol, hasSymbol, isLoaded, load, suffix, unload

Constructors

SharedLibrary

SharedLibrary();

Creates a SharedLibrary object.

SharedLibrary

SharedLibrary(
    const std::string & path
);

Creates a SharedLibrary object and loads a library from the given path.

Destructor

~SharedLibrary virtual

virtual ~SharedLibrary();

Destroys the SharedLibrary. The actual library remains loaded.

Member Functions

getPath

const std::string & getPath() const;

Returns the path of the library, as specified in a call to load() or the constructor.

getSymbol

void * getSymbol(
    const std::string & name
);

Returns the address of the symbol with the given name. For functions, this is the entry point of the function. Throws a NotFoundException if the symbol does not exist.

hasSymbol

bool hasSymbol(
    const std::string & name
);

Returns true iff the loaded library contains a symbol with the given name.

isLoaded

bool isLoaded() const;

Returns true iff a library has been loaded.

load

void load(
    const std::string & path
);

Loads a shared library from the given path. Throws a LibraryAlreadyLoadedException if a library has already been loaded. Throws a LibraryLoadException if the library cannot be loaded.

suffix static

static std::string suffix();

Returns the platform-specific filename suffix for shared libraries (including the period). In debug mode, the suffix also includes a "d" to specify the debug version of a library.

unload

void unload();

Unloads a shared library.