IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    C++用LuaIntf调用Lua代码示例

    金庆发表于 2016-12-09 14:17:00
    love 0

    C++用LuaIntf调用Lua代码示例

    (金庆的专栏 2016.12)


        void LuaTest::OnResponse(uint32_t uLuaRpcId,
            const std::string& sRespContent) const
        {
            using LuaIntf::LuaRef;
            LuaRef require(m_pLuaState, "require");
            try {
                LuaRef handler = require.call<LuaRef>("client_rpc_response_handler");
                handler.dispatchStatic("handle", uLuaRpcId, sRespContent);
            }
            catch (const LuaIntf::LuaException& e) {
                std::cerr << "Failed to call lua client_rpc_response_handler.handle(), "
                    << e.what() << std::endl;
            }
        }

    这是测试客户端代码,可以写Lua代码测试服务器.

    Lua代码中发出一个Rpc请求时, 会在Lua中保存一个回调, 待收到应答时触发回调. 通过uLuaRpcId来索引该回调.

    sRespContent 是收到的应答包, 将在lua中解包.

    OnResponse() 就是调用了 Lua 代码:

        require("client_rpc_response_handler").handle(uLuaRpcId, sRespContent) 


    金庆 2016-12-09 22:17 发表评论


沪ICP备19023445号-2号
友情链接