On Sun, Sep 07, 2003 at 06:59:47PM +0200, Bastian Müller wrote:
Am Son, 2003-09-07 um 18.45 schrieb Tobias Koenig:
Hi Bastian,
Danke für diesen Tip. Ich hab endlos bei Google gesucht und nichts gefunden. Du sagst, ldopen & ldsym - was genau muss ich da tun
man ldopen ;)
bzw. was muss ich in meinem Quellcode verändern (Headerdateien, Funktionen)
Die Plugins sollten ja alle eine gemeinsame Basisklasse haben (nennen wir sie hier mal 'Plugin'), dann sieht der Code im Plugin so aus:
myplugin.cpp --------------
class MyPlugin : plublic Plugin { ... };
extern "C" {
Plugin *create_plugin() const { return new MyPlugin; } --------------
Und der Code in deinem Programm:
app.cpp ---------------- Plugin* (*getPlugin)();
void *handle = dlopen( "path/to/plugin/myplugin.so", RTLDNOW );
getPlugin = dlsym( handle, "create_plugin" );
Plugin *plugin = (*getPlugin)();
... ----------------
Ciao, Tobias