Umleitung/redefining print() für embedded Lua
Habe ich embedded Lua in mein C++ - Anwendung. Ich möchte Umleitung der print-Anweisung (oder vielleicht auch einfach nur neu definieren, den "drucken" - Funktion?), also kann ich die Anzeige des ausgewerteten Ausdrucks woanders.
Was ist der beste Weg, dies zu tun: umleiten oder ändern Sie die print () - Funktion?
Alle snippets/Zeiger auf snippets, die zeigen, wie dies zu tun wäre sehr geschätzt werden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie definieren Sie die print-Anweisung in C:
Dann registrieren Sie es in der globalen Tabelle:
Da man sich mit C++ müssen Sie Ihre Datei mit "extern " C"'
luaL_dostring
einfach die gewünschte Ausgabe alschar*
?luaopen_luamylib()
Funktion?Können Sie einfach neu definieren drucken von einem Lua-Skript.
Sehen
luaB_print
imlbaselib.c
. Der Kommentar lautet:Können Sie nur editieren, die Funktion oder definieren Sie ein neues. Dies hat den Vorteil, dass Sie leicht und tragbar, aber es wird nicht behandeln
io.write
(die Sie kann oder kann nicht kümmern).Umleiten IO ist nicht Plattform-spezifisch sind (wie
SetStdHandle
in Windows), sondern kümmernprint
undio.write
ohne Neudefinition entweder.lua_register(L,"print", my_print)
.Schreiben, Ihre eigene C-oder Lua-Funktion und neu zu definieren
print
.Können Sie einfach definieren Sie die folgenden Makros:
was immer Sie noch möchten.
Ich bin mir nicht sicher über die lua-version, wo dies eingeführt wurde, aber es funktioniert in der 5.3 für mich.
Überprüfen Sie Ihre lauxlib.h oder luaconf.h.