📄 dynamiclibrary.cpp
字号:
#include "dynamiclibrary.h"
/*
The most codes here is from the ICE(www.zeroc.com). Thanks a lot. ;-)
*/
DynamicLibrary::DynamicLibrary()
{
_hnd= NULL;
}
DynamicLibrary::~DynamicLibrary()
{
unload();
}
bool DynamicLibrary::load( const string& __filename )
{
#ifdef _WIN32 _hnd = LoadLibrary( __filename.c_str() );#else int flags = RTLD_NOW | RTLD_GLOBAL;#ifdef _AIX flags |= RTLD_MEMBER;#endif _hnd= dlopen( __filename.c_str(), flags ); if( _hnd == 0 ){ // Remember the most recent error in _err. const char* err= dlerror(); if( err ){ _err= err; } }#endif return _hnd != NULL;
}
void* DynamicLibrary::getSymbol( const string& __name )
{
if( _hnd ){ #ifdef _WIN32 return GetProcAddress( _hnd, __name.c_str() ); #else void* result= dlsym( _hnd, __name.c_str() ); if( result == NULL ){ // Remember the most recent error in _err. const char* err= dlerror(); if( err ){ _err= err; } } return result; #endif
}
return NULL;
}
void DynamicLibrary::unload(void)
{
#ifdef _WIN32 FreeLibrary( _hnd );#else dlclose( _hnd );#endif
_hnd= NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -