Skip to content

Mars Windows 接入指南

garryyan edited this page Dec 30, 2018 · 3 revisions

所有的编译脚本都在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 接口详细说明