He incrustado Lua en mi aplicación C++. Quiero redirigir las declaraciones de impresión (o tal vez simplemente redefinir la función de impresión?), Para que pueda mostrar la expresión evaluada en otro lugar.Redireccionando/redefiniendo print() para Lua
¿Cuál es la mejor manera de hacer esto: redirigir o redefinir la función print()?
Cualquier fragmento o puntero a los fragmentos que muestren cómo hacerlo sería muy apreciado.
Eso parece sugerir la modificación directa de las fuentes de Lua (puedo estar equivocado), pero seguramente, ¿debe haber una forma mejor? – skyeagle
Bueno, no tengo una particular aversión a editar la fuente Lua, siempre y cuando no cambie la semántica de nada. Escribí un "compilador" de Lua que vinculaba los archivos al EXE como recursos, y luego enganché las rutinas de archivos de Lua para leer de los recursos ejecutables en lugar del sistema de archivos. Solo tuvo que cambiar algunas líneas de fuente. No puedo imaginarme qué pesadilla hubiera sido si hubiese intentado evitar esos cambios. – Mud
La solución que Mike M da no toca el código Lua. Proporciona una función de impresión personalizada y anula la predeterminada al registrarla a través de la función Lua C 'lua_register (L," print ", my_print)'. –