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

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Hugo Alexandre
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?

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/f7921aa9-d561-40d2-8f51-d128a9a30b49%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

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

Denis Dos Santos Silva
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;
}
===




Em sábado, 9 de maio de 2020 20:13:17 UTC-3, Hugo Alexandre escreveu:
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?

--
Você recebeu essa mensagem porque está inscrito no grupo "Lua BR" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para [hidden email].
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/lua-br/425ffc5c-ad4a-4f08-9317-06847dd13b2a%40googlegroups.com.