added wxDynamicLibrary as suggested by Vadim

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10589 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2001-06-15 22:05:31 +00:00
parent d56cebe7a4
commit 181b406894
2 changed files with 86 additions and 0 deletions

View File

@@ -104,6 +104,46 @@ private:
wxDllLoader();
};
// ----------------------------------------------------------------------------
// wxDynamicLibrary - friendly interface to wxDllLoader
// ----------------------------------------------------------------------------
class wxDynamicLibrary
{
public:
wxDynamicLibrary() { m_library = 0; }
wxDynamicLibrary(const wxString& name) { Load(name); }
bool IsLoaded() const { return m_library != 0; }
bool Load(const wxString& name)
{
m_library = wxDllLoader::LoadLibrary(name);
return IsLoaded();
}
void Unload()
{
if ( IsLoaded() )
wxDllLoader::UnloadLibrary(m_library)
}
void *GetSymbol(const wxString& name) const
{
wxCHECK_MSG( IsLoaded(), NULL,
_T("can't load symbol from unloaded library") );
return wxDllLoader::GetSymbol(m_library, name);
}
~wxDynamicLibrary() { Unload(); }
private:
wxDllType m_library;
};
// ----------------------------------------------------------------------------
// wxLibrary
// ----------------------------------------------------------------------------