Ich habe ein C++ - Programm, das einen lua_State erstellt und benutzerdefinierte Lua-Skript ausführen. Wenn ich möchte, dass der lua_State cjson vorlädt, anstatt "require" im Lua-Code aufzurufen, kann ich wissen, ob es möglich ist und wie kann ich das tun?Verwenden von Cjson in eingebettetem Lua in C++
Antwort
Ja, es ist möglich. Verwenden Sie dazu luaL_requiref
. Verwenden Sie this oder this Funktion als Argument. Sie müssen den cjson-Code mit Ihrer ausführbaren Datei verknüpfen, und der Compiler würde wahrscheinlich eine Funktionsdeklaration für die luaopen_*
-Funktionen zu schätzen wissen. Wenn Sie Lua 5.1 verwenden (welches noch nicht über luaL_requiref
verfügt), können Sie Compat-5.3
verwenden oder stehlen.
Sie können Request einmal über C++ aufrufen und eine globale Variable aus dem Rückgabewert erstellen, wenn Sie in Scripts nicht require aufrufen möchten.
Zum Beispiel in C++ zu tun:
if (luaL_dostring(L, "cjson = require(\"cjson\")")) // run code
std::cout << luaL_checkstring (L, -1) << std::endl; // print error
und nach, dass Sie cjson
in Ihren Skripte wie cjson.new()
ohne irgendwelche erfordern oder solche Anrufe verwenden können, da es als eine globale Variable existiert.
Da erfordert von C++ verwendet wurde, dann wird später in lua erfordert Aufruf nicht wieder die cjson Datei läuft anders als mit dofile oder ähnlichen
- 1. Warum CJSON verwenden, wenn wir json_encode
- 2. Ist es möglich, SHA1 in Lua Redis zu verwenden?
- 3. Verwendung von C++ - Funktionen in Lua/Binding
- 4. Wie beeinflussen Makros in eingebettetem C Speicher?
- 5. Erkennung von veralteten C++ Referenzen in Lua
- 6. Fehlerdetails in eingebettetem IronPython
- 7. Verstecken von Lua Quellcode In C Anwendung
- 8. C# mit eingebettetem Google Drive
- 9. Implementieren von WAR in eingebettetem Tomcat 7
- 10. Abfrage Lua Benutzerdatentyp von C
- 11. Lua-Array in C++ Array
- 12. Hole Lua Tischgröße in C
- 13. Lua - Printing (♡) Zeichen nach Parsen von JSON
- 14. Spielgeschwindigkeit von eingebettetem Video in Powerpoint
- 15. Verwenden von IUP mit Lua auf Ubuntu
- 16. Einstellung C Eigenschaften von Lua
- 17. Klonen einer Lua-Tabelle in Lua C API
- 18. Lua-Tabelle von C lesen
- 19. Verkettung von Strings in Lua
- 20. Python-Threads in eingebettetem Python: Wie?
- 21. Lua und C-struct
- 22. IPC zwischen C# -App, über native C++ - DLL, zu einer anderen App, die DLL mit eingebettetem Lua verwendet?
- 23. Hinzufügen von Tabellen in lua
- 24. So verwenden Sie Systembefehle in lua
- 25. Lua C Frage
- 26. Aufruf von Funktionen in einer Lua-Tabelle von C++
- 27. RAW-Daten von eingebettetem Ressourcenbild
- 28. NGINX Module in Lua und C
- 29. Laden eines C-Moduls in Lua
- 30. Rufen Sie eine Lua-Funktion von C++
Vielen Dank für Ihre Antwort! Aber beide Funktionen, die Sie erwähnt haben, sind in der .c-Datei statt in der Header-Datei definiert. Bedeutet das, dass ich ihren Code ändern oder die Funktion in einer Header-Datei verfügbar machen muss? – keelar
Sie können eine Header-Datei erstellen und sie einschließen oder einfach eine Deklaration 'int luaopen_cjson (lua_State *);' am Anfang Ihres eigenen Quellcodes einfügen. – siffiejoe