我正在尝试使用以下架构在c ++中编写内容:
App - > Core(.so)< - 插件(.so)
对于linux,mac和windows.Core隐式链接到App,而插件显式链接到dlopen/LoadLibrary到App.我遇到的问题:
有人可以给我一些不同平台的解释和说明吗?我知道在这里问他们所有人似乎都很懒,但我真的找不到这个问题的系统答案.
我在entry_point.cpp中为插件做了什么:
#include "raw_space.hpp"
#include <gamustard/gamustard.hpp>
using namespace Gamustard;
using namespace std;
namespace
{
struct GAMUSTARD_PUBLIC_API RawSpacePlugin : public Plugin
{
RawSpacePlugin(void):identifier_("com.gamustard.engine.space.RawSpacePlugin")
{
}
virtual string const& getIdentifier(void) const
{
return identifier_;
}
virtual SmartPtr<Object> createObject(std::string const& name) const
{
if(name == "RawSpace")
{
Object* obj = NEW_EX RawSpaceImp::RawSpace;
Space* space = dynamic_cast<Space*>(obj);
Log::instance().log(Log::LOG_DEBUG, "createObject: %x -> %x.", obj, space);
return SmartPtr<Object>(obj);
}
return SmartPtr<Object>();
}
private: …Run Code Online (Sandbox Code Playgroud)