• Domingo 22 de Diciembre de 2024, 09:25

Autor Tema:  Problemas con la librería LuaInterface  (Leído 872 veces)

Carlillus

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problemas con la librería LuaInterface
« en: Martes 15 de Febrero de 2011, 20:54 »
0
Hola, desde hace tiempo había programado algo en Lua para crear scripts externos en algún programa que se pudieran editar cuando este ya estubiera compilado. Ahora, por primera vez, estoy haciendo un pequeño programa que ejecute estos scripts en Lua, pero me estoy encontrando con algún problema.

Normalmente todo funciona correctamente, pero cuando se empiezan a ejecutar muchos scripts a la vez, en un momento aleatorio el programa se cierra dejando ir "No se controló LuaException: unprotected error to call Lua API ()".

Aquí dejo el código del programa que estoy usando para probar Lua:

Código: C#
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using LuaInterface;
  6. using System.Threading;
  7.  
  8. namespace LuaTest
  9. {
  10.     class Conversa
  11.     {
  12.         public Conversa()
  13.         {
  14.         }
  15.  
  16.         public void writeConsole(string s)
  17.         {
  18.             Console.WriteLine("Mensaje: " + s);
  19.         }
  20.     }
  21.     class Program
  22.     {
  23.         static void Main()
  24.         {
  25.             Lua lua = new Lua();
  26.             int times = 0;
  27.  
  28.             Conversa conv = new Conversa();
  29.  
  30.             lua.RegisterFunction("writeConsole", conv, conv.GetType().GetMethod("writeConsole"));
  31.  
  32.             lua.DoFile("test.lua");
  33.  
  34.             while (true)
  35.             {
  36.                 lua.GetFunction("test").Call(times);
  37.                 times++;
  38.                 Thread.Sleep(1);
  39.             }
  40.         }
  41.     }
  42. }
  43.  

Y aquí el script Lua que se ejecuta:

Código: Text
  1.  
  2. function test(para)
  3.     writeConsole("La función test con parámetro "..para.." funciona!");
  4. end
  5.  
  6.  

Conoceis si esta librería tiene algún error o es inestable o algo por el estilo o estoy cometiendo yo el problema? Si la librería funciona mal, qué otras alternativas tengo para llamar scripts desde fuera del programa?

Gracias