所有的编译脚本都在libraries目录

编译

编译环境:​ 安装Visual Studio 2015、cmake、python2.7编译:

1. 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 函数里初始化:

1. std::string logPath = "Log"; //use your log path
2. std::string pubKey = ""; //use you pubkey for log encrypt

4. #if _DEBUG
5. xlogger_SetLevel(kLevelDebug);
6. appender_set_console_log(true);
7. #else
8. xlogger_SetLevel(kLevelInfo);
9. appender_set_console_log(false);
10. #endif
11. appender_open(kAppednerAsync, logPath.c_str(), "Sample", pubKey.c_str());

在程序退出时反初始化:

1. appender_close();

需要注意:

  • 保存 log 的目录请使用单独的目录,不要存放任何其他文件防止被 xlog 自动清理功能误删。
  • debug 版本下建议把控制台日志打开,日志级别设为 Debug, release 版本建议把控制台日志关闭,日志级别使用 Info.

stn

在使用STN之前进行初始化:

1. void setShortLinkDebugIP(const std::string& _ip, unsigned short _port)
2. {
3. mars::stn::SetShortlinkSvrAddr(_port, _ip);
4. }
5. void setShortLinkPort(unsigned short _port)
6. {
7. mars::stn::SetShortlinkSvrAddr(_port, "");
8. }
9. void setLongLinkAddress(const std::string& _ip, unsigned short _port, const std::string& _debug_ip)
10. {
11. vector<uint16_t> ports;
12. ports.push_back(_port);
13. mars::stn::SetLonglinkSvrAddr(_ip, ports, _debug_ip);
14. }

16. void Init()
17. {
18. mars::stn::SetCallback(mars::stn::StnCallBack::Instance());
19. mars::app::SetCallback(mars::app::AppCallBack::Instance());
20. mars::baseevent::OnCreate();

22. //todo
23. //mars::stn::SetClientVersion(version);
24. //setShortLinkDebugIP(...)
25. //setLongLinkAddress(...)

27. mars::baseevent::OnForeground(true);
28. mars::stn::MakesureLonglinkConnected();
29. }

初始化顺序不一定要严格遵守上述代码的顺序,但在初始化时首先要调用 setCallBack 接口(callback 文件的编写可以参考 demo ),最后再调用 onForeground 和 makesureLongLinkConnect,中间顺序可以随意更改。注意:STN 默认是后台,所以初始化 STN 后需要主动调用一次BaseEvent.onForeground(true)

在程序退出时或需要释放 stn 时调用:

1. mars::baseevent::OnDestroy();

Windows接口与iOS/OS X接口相同,更详细的的接口说明请参考 Mars iOS/OS X 接口详细说明