Hi!
I've been using Lua 5.1.4 and lua_close never failed. Then I started to play
with wxLua, and works great. The problem is that a call to lua_close(), when
lua have loaded the wxLua module ,makes the aplication crash, a core dump.
This is the lua file:
function probandoLua( a, b )
print("Esta es la función de prueba Lua", a, b)
end
frame = wx.wxFrame( wx.NULL, -- no parent for toplevel windows
wx.wxID_ANY, -- don't need a wxWindow ID
"Hola Raul")
frame:Show(true)
frame2 = wx.wxFrame( wx.NULL, -- no parent for toplevel windows
wx.wxID_ANY, -- don't need a wxWindow ID
"Hola Raul2",
wx.wxDefaultPosition, wx.wxSize(168, 100),
wx.wxDEFAULT_FRAME_STYLE)
frame2:Show(true)
wx.wxGetApp():MainLoop()
Print("Lua: Se terminó de ejecutar el script de lua")
And this is my C code:
/*
* File: Main.cpp
* Author: raulhuertas
*
* Created on 21 de noviembre de 2008, 15:32
*/
#include <stdlib.h>
#include <lua.hpp>
#include <iostream>
using namespace std;
const char* commandFile = "Hello.lua";
/*
*
*/
int main(int argc, char** argv) {
lua_State* lua = luaL_newstate();
luaL_openlibs( lua );
cout<<"Version de Lua: "<< LUA_RELEASE <<endl;
if( luaL_loadfile( lua, "Hello.lua") ){
cout<<"Ha habido un error cargando el archivo "<<endl;
return(-1);
}
cout<<"Se cargó el archivo"<<endl;
switch( lua_pcall( lua, 0,0,0) ){
case 0: cout<<"No hubieron errores interpretando el archivo'"<<endl;
break;
case LUA_ERRRUN: cout<<""<<endl; break;
case LUA_ERRMEM: cout<<""<<endl; break;
case LUA_ERRERR: cout<<""<<endl; break;
default: cout<<"Error desconocido de Lua"<<endl;
}
//load file carga el archivo y su contenido lo coloca en la stack.
//Al momento de 'call' una chunk, lo que se realiza es interpretar todo su
contenido
cout<<"Se cargó y ejecutó el archivo por completo"<<endl;
/******Invocnado Lua desde C*******/
//Vamos a llamar la función 'probandoLua' que se definió en el archivo
anterior
lua_getfield( lua, LUA_GLOBALSINDEX, "probandoLua");
cout<<"get field 'probandolua' "<<endl;
lua_pushstring(lua, argv[1] );
lua_pushnumber(lua, 12312.56);
cout<<"push 1 y push 2 "<<endl;
switch( lua_pcall( lua, 2,0,0) ){
case 0: cout<<"No hubieron errores llamando la función
'probandolua'"<<endl; break;
case LUA_ERRRUN: cout<<""<<endl; break;
case LUA_ERRMEM: cout<<""<<endl; break;
case LUA_ERRERR: cout<<""<<endl; break;
default: cout<<"Error desconocido de Lua"<<endl;
}
cout<<"Se va a llamar a 'luaclose'"<<endl;
lua_close(lua);
int r;
cin>>r;
return (EXIT_SUCCESS);
}
In the wxLua installation files I changed the lua module for the version
5.1.4.(else 'make install' would my system lua.h to 5.1.3).
Some help please
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
wxlua-users mailing list
wxlua-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wxlua-users