• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

dmlua: dmlua 是一个 C++ & Lua 自动化引擎,无需编写额外代码实现 C++ 调用 Lua ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

dmlua

开源软件地址:

https://gitee.com/brinkqiang/dmlua

开源软件介绍:

dmlua

Copyright (c) 2013-2018 brinkqiang ([email protected])

dmluaLicenseblogOpen Source LoveGitHub starsGitHub forks

Build status

LinuxMacWindows
lin-badgemac-badgewin-badge

Intro

Lua fully automated engine, based on tolua++, support lua 5.1-5.4

#include "role/rolemgr.h"#include "role/role.h"#include "gtest/gtest.h"#include "dmlua.h"#include "dmutil.h"#include "script/interface.h"#define DMLUA_TEST_COUNT 10000TEST(luabasetest, luabasetest){    CDMLuaEngine oDMLuaEngine;    /// The default search path is to search the root directory with the exe program /../ relative path (because cmake will add the $BUILD_TYPE directory to the generated bin directory.)    /// If you need to modify to other paths, please set your own search path    std::string strScriptRootPath = DMGetRootPath();    oDMLuaEngine.SetRootPath(strScriptRootPath + PATH_DELIMITER_STR + ".." + PATH_DELIMITER_STR);    oDMLuaEngine.AddModule(tolua_interface_open);    if (!oDMLuaEngine.ReloadScript())    {        ASSERT_TRUE(0);        return;    }    oDMLuaEngine.DoString(R"(        function addtest()           local a = 100000000           local b = 100000000           local c = a * b           print(c)        end        )");    {        for (int i = 0; i < 1; ++i)        {            int r = oDMLuaEngine.Call("addtest");        }    }    if (!oDMLuaEngine.ReloadScript())    {        ASSERT_TRUE(0);        return;    }    oDMLuaEngine.DoString(R"(        function addex(first, second)            print("overflow -> " .. first * second)            return first * second        end        )");    {        for (int i = 0; i < 1; ++i)        {            uint64_t r = oDMLuaEngine.CallT<uint64_t>("addex", 4294967295ULL,                         4294967295ULL);            if (r >= 0)            {                std::cout << r << std::endl;            }        }    }    {        oDMLuaEngine.DoString(R"(            function script.task.taskinfo()               local task = STaskInfo:new()               task.nTaskID = 1002               task.nTaskState = 2               task.nTaskCondition = 2               return task            end            )");        STaskInfo sInfo = oDMLuaEngine.CallT<STaskInfo>("script.task.taskinfo");        std::cout << sInfo.nTaskID << std::endl;    }    {        oDMLuaEngine.DoString(R"(            function script.task.taskinfo(task)               task.nTaskID = 1003               task.nTaskState = 1               task.nTaskCondition = 0            end            )");        STaskInfo sInfo;        int r = oDMLuaEngine.Call("script.task.taskinfo", &sInfo);        if (r >= 0)        {            std::cout << sInfo.nTaskID << std::endl;        }    }    {        oDMLuaEngine.DoString(R"(            function bintest(data)               print(string.len(data))            print(data)            end            )");        std::string strData = "12345";        strData.append("\0", 1);        strData.append("ABCDE", 5);        int r = oDMLuaEngine.Call("bintest", strData);        if (r >= 0)        {            ;        }    }    CRole* poRole = CRoleMgr::Instance()->CreateRole();    poRole->SetName("andy");    poRole->SetHp(9999);    poRole->SetMp(9999);    unsigned int dwTaskID = 100;    LResultINT oResult(-1);    oDMLuaEngine.Call("script.task.task.AcceptTask", poRole, dwTaskID, &oResult);    oDMLuaEngine.Call("script.task.task.FinishTask", poRole, dwTaskID);    std::vector<std::string> vecData;    vecData.push_back("hello");    oDMLuaEngine.Call("script.common.test.main_vector", &vecData);    oDMLuaEngine.Call("script.common.test.main");    CRoleMgr::Instance()->ReleaseRole(poRole);}

Contacts

Join the chat

Thanks

[email protected]


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap