日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

lua c/c++ 交互 基础

發布時間:2025/3/21 c/c++ 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lua c/c++ 交互 基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來源于http://wenku.baidu.com/view/53e0b503763231126edb113c.html


按照示例代碼測試了一下可行。


function.lua如下:

function add(a, b)local sum = a + breturn sum endz = 12b = 15avg,sum = average(10,20,30,40,50) print("average is ", avg, " . sum is ", sum)
c/c++程序如下:

#include <stdio.h>extern "C" //如果文件后綴為.c, 則去掉extern "C" { #include "lua.h" #include "lualib.h" #include "lauxlib.h" }/* Lua解釋器指針 */ lua_State* L;//call func in lua script.... int luaadd(int x, int y) {int sum;lua_getglobal(L, "add");lua_pushnumber(L, x);lua_pushnumber(L, y);lua_call(L, 2, 1); //2個參數, 1個返回值sum = (int)lua_tonumber(L, -1);lua_pop(L, 1);return sum; }//get && set global var in lua script int luagetglobalv(char *z) {int v;lua_getglobal(L, z);v = (int)lua_tonumber(L, 1);lua_pop(L, 1);return v; }int luasetglobalv(char *z, int newv) {lua_pushnumber(L, newv);lua_setglobal(L, z);return 0; }//call c/c++ func from lua script static int average(lua_State *L) {int n = lua_gettop(L);double sum = 0;int i;for(i = 1; i <= n; i++){if(!lua_isnumber(L, i)){lua_pushstring(L, "incorrect arg for average");lua_error(L);return 1; !!!!!!!!!!這里彈棧不正確。。。 暫時還不清楚到底該怎么彈。。}sum += lua_tonumber(L, i);}lua_pushnumber(L, sum/n);lua_pushnumber(L, sum);return 2; //return num of results }int main ( int argc, char *argv[] ) {/* 初始化Lua */L = lua_open();/* 載入Lua基本庫 */luaL_openlibs(L);/* 運行腳本 */lua_register(L, "average", average);luaL_dofile(L, "C:\\Users\\xx\\Documents\\lua\\function.lua");int sum = luaadd(10, 15);printf("add result is :%u, z:%u, b:%u\n", sum, luagetglobalv("z"), luagetglobalv("b"));luasetglobalv("z", 102);printf("cur value of z:%u\n", luagetglobalv("z"));/* 清除Lua */lua_close(L);/* 暫停 */printf( "Press enter to exit…" );getchar();return 0; }

總結

以上是生活随笔為你收集整理的lua c/c++ 交互 基础的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。