Olá pessoal, informar que esta faltando algo no codigo.

24 views
Skip to first unread message

Hugo Alexandre

unread,
May 9, 2020, 7:13:17 PM5/9/20
to Lua BR
Ola pessoal, sou novo na linguagem lua e estou tendo problemas para informar por messagebox ou print o erro tipo se falta uma " ' , alguma coisa que não ta batendo com o código, estou exportando as funções do C++ para o lua e tentando fazer um "debug", segue o codigo abaixo !

int cLuaExport::flLoadExtension(lua_State * Lua)
{
bool Result = true;
// ---
if(luaL_dofile(Lua, lua_tostring(Lua,-1)))
{
Result = false;
}
// ---
if(!Result)
{
gToolKit.MsgBox((char*)lua_tostring(Lua,-1));
}
// ---
lua_pop(Lua,-1);
// ---
return 0;
}

fiz da seguinte forma, carrega perfeitamente o arquivo e as funções que estão dentro, porem o mesmo não informa erros se eu digitar por exemplo extfunction(string.format(''))) ele não informa que coloquei uma ) a mais, alguem poderia me dar um help referente a isso?

Denis Dos Santos Silva

unread,
May 10, 2020, 6:18:25 PM5/10/20
to Lua BR
sem ver a funcao 'completa' nao da pra dar pitaco, porem, segue abaixo um exemplo de como "tratar" erro




$ ./teste.exe teste1.lua
!! luaL_dofile()  teste1.lua:2: attempt to perform arithmetic on global 'a' (a nil value)n

=== teste1.lua
function t3()
print('t3 :: ok', a+b);
end

t3();


=== teste.c
#include <stdio.h>

#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
#include <assert.h>

int main(int argc, char **argv)
{
    lua_State *LUAVM = NULL;
    const char *filename = NULL;

    assert(argc == 2);
filename = argv[1];

    LUAVM = luaL_newstate();
    assert(LUAVM);
lua_gc(LUAVM, LUA_GCSTOP, 0);
    
luaL_openlibs(LUAVM);
lua_gc(LUAVM, LUA_GCRESTART, 0);
    if (luaL_dofile( LUAVM, filename) ) {
lua_gc(LUAVM, LUA_GCCOLLECT, 0);
        printf("!! luaL_dofile()  %sn", lua_tostring(LUAVM, -1));

        lua_close(LUAVM);
        return 1;
    }

    lua_close(LUAVM);
    return 0;
}
===
Reply all
Reply to author
Forward
0 new messages