⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynamiclibrary.cpp

📁 网络游戏通用架构, 这是基于boost和libevent写的一个程序
💻 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 + -