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

编译

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

  1. python build_windows.py

编译成功后,输出文件详细介绍如下:

文件名描述
Debug/mars.libDebug版本静态库
Release/mars.libRelease版本静态库
include要包含的头文件
longlink_packer.cc.rewriteme长连接协议可扩展部分,使用前请先改名为 longlink_packer.cc,如若想自定义长连接包头以及加解包,重写该文件。
longlink_packer.h编译 longlink_packer.cc 需要使用的头文件,请勿修改。
stnproto_logic.hlonglink_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
  3.  
  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. }
  15.  
  16. void Init()
  17. {
  18. mars::stn::SetCallback(mars::stn::StnCallBack::Instance());
  19. mars::app::SetCallback(mars::app::AppCallBack::Instance());
  20. mars::baseevent::OnCreate();
  21.  
  22. //todo
  23. //mars::stn::SetClientVersion(version);
  24. //setShortLinkDebugIP(...)
  25. //setLongLinkAddress(...)
  26.  
  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 接口详细说明