开源服务器框架NoahFrame分享 第二章:插件与模块[图]
时间:2017-10-31 11:55:22
return true;
}
virtual bool ReadyExecute()
{
return true;
}
virtual bool Execute()
{
return true;
}
};
这些函数被调用的顺序,和NFCPluginManager启动的时候调用的顺序是一样的,每一个继承NFIModule的类(Mudole),都是按照此顺序运行。
所有的Module类的载体都是插件(动态库),因此为了夸平台,首先NF对要加载的动态库作了一个抽象,用NFCDynLib类来表示(这里向Ogre的作者致敬,几乎纯抄他的),一个动态库就是一个NFCDynLib类对象。同时NFCPluginManager类用来管理所有加载的NFCDynLib类对象,它负责根据动态库文件名对相应的库进行加载,并保存加载后的NFCDynLib对象指针,对于不同平台的插件区分加载,也是这里实现的,代码大概如下:
class NFCDynLib
{
public:
NFCDynLib(const std::string& strName)
{
mbMain = false;
mstrName = strName;
#ifdef NF_DEBUG_MODE
mstrName.append("_d");
#endif
#if NF_PLATFORM == NF_PLATFORM_WIN
mstrName.append(".dll");
#else
mstrName.append(".so");
#endif
printf("LoadPlugin:%s\n", mstrName.c_str());
}
~NFCDynLib()
{
}
bool Load()
{
std::string strLibPath = "./";
strLibPath = mstrName;
mInst = (DYNLIB_HANDLE)DYNLIB_LOAD(strLibPath.c_str());
相关游戏
-
开源读书软件26MB新闻资讯
-
开源阅读app1MB新闻资讯
-
tap,tap双击背部官网111MB系统安全
-
小松鼠短视频完美开源源码26MB影音视频
最新合集
- 我的世界Jennyslipperyt合集2021-8-19
- 成语大富豪游戏合集2021-8-16
- 古装视频faceplay合集2021-8-20
- 小洽暖软件合集2021-8-18
- 小洽暖会员合集2021-8-20
- 换脸古风视频制作合集2021-8-20
- 火柴人觉醒破解版合集2021-8-18
- bud游戏下载美乐蒂合集2021-8-17
- faceplay安卓版合集2021-8-18
- 网上最火的古装换脸软件合集2021-8-17
相关文章
最新游戏
玩家评论
网名(您的评论需要经过审核才能显示) 回复 [ ] 楼取消回复