所有的编译脚本都在libraries目录
编译
编译环境: 安装Visual Studio 2015、cmake、python2.7编译:
- python build_windows.py
编译成功后,输出文件详细介绍如下:
文件名 | 描述 |
---|---|
Debug/mars.lib | Debug版本静态库 |
Release/mars.lib | Release版本静态库 |
include | 要包含的头文件 |
longlink_packer.cc.rewriteme | 长连接协议可扩展部分,使用前请先改名为 longlink_packer.cc,如若想自定义长连接包头以及加解包,重写该文件。 |
longlink_packer.h | 编译 longlink_packer.cc 需要使用的头文件,请勿修改。 |
stnproto_logic.h | longlink_packer.cc 中 SetClientVersion 函数的声明。如若删除 SetClientVersion 函数,请同时删除该文件。 |
shortlink_packer.cc.rewriteme | 短连接协议可扩展部分,使用前请先改名为 shortlink_packer.cc,如若想自定义短连接包头(HTTP Head),重写该文件。 |
shortlink_packer.h | 编译 shortlink_packer.cc 需要使用的头文件,请勿修改。 |
使用
xlog
推荐在 main 函数里初始化:
- std::string logPath = "Log"; //use your log path
- std::string pubKey = ""; //use you pubkey for log encrypt
- #if _DEBUG
- xlogger_SetLevel(kLevelDebug);
- appender_set_console_log(true);
- #else
- xlogger_SetLevel(kLevelInfo);
- appender_set_console_log(false);
- #endif
- appender_open(kAppednerAsync, logPath.c_str(), "Sample", pubKey.c_str());
在程序退出时反初始化:
- appender_close();
需要注意:
- 保存 log 的目录请使用单独的目录,不要存放任何其他文件防止被 xlog 自动清理功能误删。
- debug 版本下建议把控制台日志打开,日志级别设为 Debug, release 版本建议把控制台日志关闭,日志级别使用 Info.
stn
在使用STN之前进行初始化:
- void setShortLinkDebugIP(const std::string& _ip, unsigned short _port)
- {
- mars::stn::SetShortlinkSvrAddr(_port, _ip);
- }
- void setShortLinkPort(unsigned short _port)
- {
- mars::stn::SetShortlinkSvrAddr(_port, "");
- }
- void setLongLinkAddress(const std::string& _ip, unsigned short _port, const std::string& _debug_ip)
- {
- vector<uint16_t> ports;
- ports.push_back(_port);
- mars::stn::SetLonglinkSvrAddr(_ip, ports, _debug_ip);
- }
- void Init()
- {
- mars::stn::SetCallback(mars::stn::StnCallBack::Instance());
- mars::app::SetCallback(mars::app::AppCallBack::Instance());
- mars::baseevent::OnCreate();
- //todo
- //mars::stn::SetClientVersion(version);
- //setShortLinkDebugIP(...)
- //setLongLinkAddress(...)
- mars::baseevent::OnForeground(true);
- mars::stn::MakesureLonglinkConnected();
- }
初始化顺序不一定要严格遵守上述代码的顺序,但在初始化时首先要调用 setCallBack 接口(callback 文件的编写可以参考 demo ),最后再调用 onForeground 和 makesureLongLinkConnect,中间顺序可以随意更改。注意:STN 默认是后台,所以初始化 STN 后需要主动调用一次BaseEvent.onForeground(true)
在程序退出时或需要释放 stn 时调用:
- mars::baseevent::OnDestroy();
Windows接口与iOS/OS X接口相同,更详细的的接口说明请参考 Mars iOS/OS X 接口详细说明