怎么将C中数据传入lua中

#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");//netstatutemodel1

int 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 过来就可以了,

狐的传说
浏览 496回答 2
2回答

呼唤远方

int a=12;lua_pushnumber(L,a);//你将a压入栈之后,并没有将a的值赋予给lua中的变量a,所以lua中a的值没变.所以接下来你获取a的值不会是12lua_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);
打开App,查看更多内容
随时随地看视频慕课网APP