view modules/dynlib/doc/mainpage.cpp @ 518:78f296a7b2e5

Dynlib: resurrection
author David Demelier <markand@malikania.fr>
date Wed, 01 Jun 2016 16:26:20 +0200
parents
children f48bb09bccc7
line wrap: on
line source

/**
 * \mainpage
 *
 * Welcome to the dynlib library.
 *
 * ## Introduction
 * 
 * Opening shared libraries from C++ (e.g for plugins) is platform specific, with that class, you can open them very
 * easily.
 *
 * ## Installation
 *
 * Just copy the file dynlib.hpp and add it to your project.
 *
 * ## Overview
 *
 * This one minute tutorial shows how to load a shared library named `plugin.so` and execute a C function `say_hello`.
 *
 * ### Main
 *
 * This is the main executable that loads the `plugin.so` file.
 * 
 * ````cpp
 * #include <iostream>
 * 
 * #include "dynlib.hpp"
 * 
 * using HelloFunc = void (*)(const std::string &);
 * 
 * int main()
 * {
 *	try {
 *		Dynlib library("./plugin.so");
 *
 *		HelloFunc hello = library.sym<HelloFunc>("say_hello");
 *		hello("Test");
 *	} catch (const std::exception &error) {
 *		std::cerr << error.what() << std::endl;
 *	}
 *
 *	return 0;
 * }
 * ````
 *
 * ### Plugin
 *
 * This is the plugin that you compile as a shared library.
 *
 * For example with gcc: `gcc -fPIC -shared plugin.cpp -o plugin.so`.
 *
 * ````cpp
 * #include <iostream>
 *
 * #include "dynlib.hpp"
 *
 * extern "C" {
 *
 * DYNLIB_EXPORT void say_hello()
 * {
 *	std::cout << "Hello from the plugin!" << std::endl;
 * }
 * ````
 */