在服务器端启动通信服务器程序CommunicateServer.exe,接受客户端的连接;在客户端启动GameStart.exe,连接至服务器端,在接收到“Start”消息时启动GameEntryPoint.exe,GameEntryPoint.exe 将根据配置文件(引导文件)加载相应的窗口和相应的逻辑插件;其中窗口负责与用户的交互,逻辑插件负责底层的逻辑运算,交互窗口和逻辑插件根据实时数据库进行通信。
其中最核心的有一下几个类:
class DGUI_EXPORT DEmuatorUnit
{
public:DEmuatorUnit(void);virtual ~DEmuatorUnit(void);virtual void install(const QStringList& parameter) = 0;virtual QStringList parameterIntroduce() const = 0;virtual QWidget* widget(){return nullptr;}virtual QString name() const{return QString();}QString group() const{return QString();}
};
class DGUI_EXPORT DEmuatorUnitFactory
{
public:DEmuatorUnitFactory(const QString &plugins);DEmuatorUnitFactory();virtual ~DEmuatorUnitFactory();virtual QStringList products() const;virtual DEmuatorUnit* create(const QString &name);
private: DEmuatorUnitFactory *m_factory;bool m_loader;
};
#define EXPORT_EmuatorUnitFactory(EXPORT_GRAND) extern "C" EXPORT_GRAND DEmuatorUnitFactory *createEmuatorUnitFactory()