C ++PassedLUA APIAccessLUA scriptVariable learning is the content to be introduced in this article. It is mainly used to learn about stack operations and data type judgment.LUA APIYou can use these functions to obtain the variable values in the script.
1. Steps
Compile test01.LuaScript, create and correctly configure the console C ++ program in VS2003, execute the command to view the result, and modify test02.Lua scriptView the execution result
2. Test script
The following is the lua script for testing.
- function plustwo(x)
- local a = 2;
- return x+a;
- end;
- rows = 6;
- cols = plustwo(rows);
The above script defines a function and two global variables.LUA scriptThe variables are global by default ). In the subsequent C ++ program, we will obtain the two variables rows and cols through stack operations.
3. Console Program
- #include <iostream>
-
- extern "C"
- {
- #include "lua.h"
- #include "lauxlib.h"
- #include "lualib.h"
- }
-
- using namespace std;
-
- int main(int argc, char* argv[])
- {
- cout << "01_Read_Stack" << endl;
-
- /**//* Create a LUA VMachine */
- lua_State *L = lua_open();
- luaopen_base(L);
- luaopen_table(L);
- luaL_openlibs(L);
- luaopen_string(L);
- luaopen_math(L);
-
- int iError;
- iError = luaL_loadfile(L, "../test01.lua");
- if (iError)
- {
- cout << "Load script FAILED!" << lua_tostring(L, -1)<< endl;
- lua_close(L);
- return 1;
- }
- iError = lua_pcall(L, 0, 0, 0);
- if (iError)
- {
- cout << "pcall FAILED"<< lua_tostring(L, -1)<< iError<< endl;
- lua_close(L);
- return 1;
- }
-
- lua_getglobal(L, "rows");
- lua_getglobal(L, "cols");
-
- if (!lua_isnumber(L, -2))
- {
- cout << "[rows] is not a number" << endl;
- lua_close(L);
- return 1;
- }
- if (!lua_isnumber(L, -1))
- {
- cout << "[cols] is not a number" << endl;
- lua_close(L);
- return 1;
- }
- cout << "[rows]"
- << static_cast<int> (lua_tonumber(L, -2))
- << "[cols]"
- << static_cast<int> (lua_tonumber(L, -1))
- << endl;
-
- lua_pop(L,2);
- lua_close(L);
- return 0;
- }
Summary:C ++PassedLUA APIAccessLUA scriptThe variable learning tutorial is complete. I hope this article will help you!