#include <stdio.h>#include <Windows.h>#include <string>using namespace std;extern "C"{#include "lua.h"#include "lualib.h"#include "lauxlib.h"};lua_State * L;//解释器static int average(lua_State *L){return 1;}int main(){L=lua_open();luaL_openlibs(L);luaL_dofile(L,"c:\\test112.lua");//netstatutemodel1int a=12;lua_pushnumber(L,a);lua_getglobal(L,"a");a=(int)lua_tointeger(L,-1);lua_pop(L,1);lua_close(L);system("pause");return 0;}、、、、、、、、、lua 中 print(a) 只要传个int a 过来就可以了,
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
int a=12;
lua_pushnumber(L,a);//你将a压入栈之后,并没有将a的值赋予给lua中的变量a,所以lua中a的值没变.所以接下来你获取a的值不会是12
lua_getglobal(L,"a");
a=(int)lua_tointeger(L,-1);
不知道你是否想的是这样:
int a=12;
lua_pushnumber(L,a);
//设置lua的全局变量值:
lua_pushnumber(L,a);
lua_setglpbal(L, "a");
//取全局变量的值:
lua_getglobal(L,"a");
a=(int)lua_tointeger(L,-1);
- 2 回答
- 0 关注
- 495 浏览
添加回答
举报
0/150
提交
取消