首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> C++ 入門

Lua 與 C++ 交互完整指南

     編輯:C++ 入門

環境準備

  1. 官網下載 Lua 源碼(如 5.1.5)。
  2. VS 配置包含目錄與庫目錄,鏈接 lua5.1.lib。

四種交互方式

1. C++ 讀取 Lua 全局變量

lua_State *L = luaL_newstate();
luaL_openlibs(L);
luaL_loadfile(L, "script.lua"); lua_pcall(L,0,0,0);
lua_getglobal(L, "varName");
int val = lua_tointeger(L, -1); lua_pop(L,1);

2. C++ 調用 Lua 函數

lua_getglobal(L, "funcName");
lua_pushinteger(L, arg1); lua_pushinteger(L, arg2);
lua_pcall(L, 2, 1, 0); // 2參數,1返回值
int ret = lua_tointeger(L, -1); lua_pop(L,1);

3. Lua 訪問 C++ 全局變量

需註冊 C 函數獲取值,或用 lua_pushinteger 設置全局表字段。

4. Lua 調用 C++ 函數

// C 函數簽名
int c_func(lua_State *L) {
    int arg = luaL_checkinteger(L, 1);
    lua_pushinteger(L, arg * 2); return 1;
}
// 註冊
lua_pushcfunction(L, c_func);
lua_setglobal(L, "c_func");

完整範例

參考原文代碼:lua.lua 定義變量與函數,C++ 主程序演示雙向調用,輸出版本字串。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved