Files
dnf-utils/tencent_netbar

腾讯网吧特权组件

前端对接:https://iwiki.woa.com/p/4008054268
后端对接(腾讯内网): https://iwiki.woa.com/p/1440190556
后端对接: https://iwiki.woa.com/p/4008196267

示例代码

#include <Windows.h>
#include <stdio.h>

#include "iigw_api_client.h"

int main(int argc, char *argv[]) {
  HMODULE hModule = ::LoadLibraryW(L"iigw_client_api.dll");
  if (hModule) {
    char* open_id = "979591";// "4724195171999796436";
    unsigned int game_id = 1;// 16300;
    iepm_qqwb::IQQNetbarIIGWPlugin *plugin =
        iepm_qqwb::CreateQQNetbarIIGWPlugin(hModule);
    if (plugin) {
      unsigned int zone_id = 0;
      char* tick_buff = nullptr;// "27A50B44430AAD6BFFBE09BA875E48BB";
      int tick_buflen = 0;// sizeof(tick_buff);
      iepm_qqwb::NetbarLv netbarlv = {0};

      int ret = plugin->ReqNetbarLv2(
		  20,                 // game_id=1(DNF的game_id)
		  101,                 // zone_id=0(目前不重要的参数,暂时设置为0)
		  "979591",          // open_id (DNF目前还是使用的QQ号登录,这里传入用户的QQ号)
		  iepm_qqwb::at_qq,  // type (open_id的类型,这里使用qq号类型)
		  nullptr,           // ticketBuff, 传入空
		  0,                 // ticketLen, 传入0
		  &netbarlv,         // netbarlv, 输出参数
          3000
      );

  
      if (ret == 0 && netbarlv.tokenLen > 0) {
        // do something
    	  printf("ret=%d, tokenLen=%d\n", ret, netbarlv.tokenLen);
		  printf("ip=%s\n", netbarlv.ip);
		  printf("token=%s\n", netbarlv.tokenBuff);
		  printf("macSize=%d, macs='%s'\n", netbarlv.macSize, netbarlv.macs);
      }

      ret = plugin->IsNetbarMachine(1, "979591", iepm_qqwb::at_qq);
      if(ret==IIGW_MSG_STATUS_NOT_IN_NETBAR)
	    printf("IsNetbarMachine ret='IIGW_MSG_STATUS_NOT_IN_NETBAR'\n");
	  else if (ret == IIGW_MSG_STATUS_NETBAR_PC)
	    printf("IsNetbarMachine ret='IIGW_MSG_STATUS_NETBAR_PC'\n");
      else
        printf("IsNetbarMachine ret=%d\n", ret);
    }

    ::FreeLibrary(hModule);
  } else {
    DWORD err = ::GetLastError();
    printf("LoadLibraryW fail, err=%d\n", err);
  }
  return 0;
}