金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  351 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks

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) 
posted on 2016-12-09 22:17 金庆 阅读(159) 评论(0)  编辑 收藏 引用 所属分类: 1. C/C++

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理