Listing 8
// main.cxx #include <iostream> #include <typeinfo> #include "Plugin.h" #include "TextPlugin.h" using namespace std; int main(int argc, char* argv[]) { try { Plugin& plugin = PluginManager::instance().findPlugin("language"); TextPlugin& text = dynamic_cast<TextPlugin&>(plugin); cout << "Name: " << text.pluginName() << endl << "Type: " << text.pluginType() << endl << "String: " << text.getSayHelloString() << endl; } catch(const SharedLibraryException& error) { cerr << error.getError() << endl; return 101; } catch(const bad_cast& ex) { cout << "Cast to TextPlugin Failed" << endl; return 102; } return 0; }