Lua 和 C++ 是這樣交互的
亂七八糟的前戲:
1. 到官網下載 Lua 文件 可參考 -> Lua 下載與配置
2. 設置環境 可參考 -> VS 配置Lua環境
交互過程有:
1. C++ 訪問 Lua 的變量
2. C++ 調用 Lua 的函數
3. Lua 訪問 C++ 的變量
4. Lua 訪問 C++ 的函數
No code say a j8
C++ 調用 Lua
#include#include // 引入Lua必要的頭文件,Version: Lua5.1.5 extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" }; using namespace std; // C++ 調用 lua int main() { //初始化全局L lua_State *L = luaL_newstate(); //打開庫 luaL_openlibs(L); //加載lua腳本文件 if (luaL_loadfile(L,"LuaFile\\lua.lua")) // lua.lua 的路徑,這裡使用相對路徑 { printf("file load error\n"); } lua_pcall(L,0,0,0); // 加載 Lua 文件 lua_getglobal(L, "l_str"); // get, 將L指向 lua文件中的函數 l_str lua_pcall(L,0,1,0); // 執行指針L指向的函數,將結果返回到棧頂, (0,1,0) 表示 (輸入個數,輸出個數,其他處理) string strVersion = luaL_checkstring(L,1); // 從棧頂獲取元素 cout<
Lua 調用 C++
#include#include // 引入Lua必要的頭文件,Version: Lua5.1.5 extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" }; using namespace std; // 將lua中的變量,通過這個函數打印出來 int c_Print(lua_State* L) // 返回值為壓入棧中元素的個數 { // 從參數列表中,獲取元素 string strVersion = luaL_checkstring(L,1); cout<
運行結果: