1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/brinkqiang-dmlua

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

dmlua

Copyright (c) 2013-2018 brinkqiang (brink.qiang@gmail.com)

dmlua License blog Open Source Love GitHub stars
GitHub forks

Build status

Linux Mac Windows
![lin-badge] ![mac-badge] ![win-badge]

[lin-badge]: https://github.com/brinkqiang/dmlua/workflows/linux/badge.svg «Linux build status» [lin-link]: https://github.com/brinkqiang/dmlua/actions/workflows/linux.yml «Linux build status» [mac-badge]: https://github.com/brinkqiang/dmlua/workflows/mac/badge.svg «Mac build status» [mac-link]: https://github.com/brinkqiang/dmlua/actions/workflows/mac.yml «Mac build status» [win-badge]: https://github.com/brinkqiang/dmlua/workflows/win/badge.svg «Windows build status» [win-link]: https://github.com/brinkqiang/dmlua/actions/workflows/win.yml «Windows build status»

Intro

Lua полностью автоматизированный движок, основанный на tolua++, поддерживает 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 10000

TEST(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) {

...

*Примечание: часть текста не удалось перевести из-за отсутствия контекста.*

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Dmlua — это автоматизированный движок на C++ и Lua, который позволяет осуществлять вызовы между C++ и Lua без необходимости писать дополнительный код. Он успешно компилируется в средах Windows, Linux и macOS. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/brinkqiang-dmlua.git
git@api.gitlife.ru:oschina-mirror/brinkqiang-dmlua.git
oschina-mirror
brinkqiang-dmlua
brinkqiang-dmlua
master