From 9e7cd28585a12b54cae0c02f1c46c0b08338db91 Mon Sep 17 00:00:00 2001 From: nebogeo Date: Mon, 21 Oct 2002 21:53:36 +0000 Subject: [PATCH] Added Joe Jone's fix for error boxes --- SpiralSound/PluginManager.C | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/SpiralSound/PluginManager.C b/SpiralSound/PluginManager.C index ffccfa0..d895ce3 100644 --- a/SpiralSound/PluginManager.C +++ b/SpiralSound/PluginManager.C @@ -47,15 +47,30 @@ PluginID PluginManager::LoadPlugin(const char *PluginName) return PluginError; } - // Link the neccesary functions + // Link the neccesary functions + char *error; + NewPlugin->CreateInstance = (SpiralPlugin*(*)()) dlsym(NewPlugin->Handle, "CreateInstance"); + + if ((error = dlerror()) != NULL) + { + SpiralInfo::Alert("Error linking to plugin "+string(PluginName)+"\n"+string(error)); + return PluginError; + } + NewPlugin->GetIcon = (char **(*)()) dlsym(NewPlugin->Handle, "GetIcon"); + + if ((error = dlerror()) != NULL) + { + SpiralInfo::Alert("Error linking to plugin "+string(PluginName)+"\n"+string(error)); + return PluginError; + } + NewPlugin->GetID = (int(*)()) dlsym(NewPlugin->Handle, "GetID"); - - char *error; + if ((error = dlerror()) != NULL) { - SpiralInfo::Alert("Error linking to plugin: \n"+string(error)); + SpiralInfo::Alert("Error linking to plugin "+string(PluginName)+"\n"+string(error)); return PluginError; }