#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條經(jīng)驗 獲得超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);
//設(shè)置lua的全局變量值:
lua_pushnumber(L,a);
lua_setglpbal(L, "a");
//取全局變量的值:
lua_getglobal(L,"a");
a=(int)lua_tointeger(L,-1);
- 2 回答
- 0 關(guān)注
- 517 瀏覽
添加回答
舉報
0/150
提交
取消