锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
lua sdk 5.1
鍦ㄨ皟鐢ㄥ墠 鍏堣璇嗗嚑涓嚱鏁般?br>1錛?璋冪敤lua_open()灝嗗垱寤轟竴涓寚鍚慙ua瑙i噴鍣ㄧ殑鎸囬拡銆?
2錛?luaL_openlibs()鍑芥暟鍔犺澆Lua搴撱?
3錛?浣跨敤luaL_dofile()鍔犺澆鑴氭湰騫惰繍琛岃剼鏈?
4錛?lua_close()鏉ュ叧闂璍ua鎸囧悜瑙i噴鍣ㄧ殑鎸囬拡銆?br>
5錛?璋冪敤lua_getglobal()灝哸dd()鍑芥暟鍘嬪叆鏍堥《錛宎dd()涓簂ua鍑芥暟銆?br>6錛?絎竴涓弬鏁皒錛岄氳繃璋冪敤lua_pushnumber()鍏ユ爤銆?br>7錛?鍐嶆璋冪敤lua_pushnumber()灝嗙浜屼釜鍙傛暟鍏ユ爤銆?br>8錛?浣跨敤lua_call()璋冪敤Lua鍑芥暟銆?br>9錛?璋冪敤lua_tonumber()浠庢爤欏跺彇寰楀嚱鏁扮殑榪斿洖鍊箋?br>10錛?lua_pop()縐婚櫎鏍堥《鐨勫箋?br>
浠g爜
add.lua
function add ( x, y )
2 return x + y
3end
4
main.cpp
#include <stdio.h>
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
/**//* the Lua interpreter */
lua_State * L;
int luaadd ( int x, int y )
{
int sum;
//鍑芥暟鍚?/span>
lua_getglobal(L, "add");
//絎竴涓弬鏁板帇鏍?/span>
lua_pushnumber(L, x);
//絎簩涓弬鏁板帇鏍?/span>
lua_pushnumber(L, y);
//璋冪敤鍑芥暟
lua_call(L, 2, 1);
//寰楀埌榪斿洖鍊?/span>
sum = (int)lua_tonumber(L, -1);
lua_pop(L, 1);
return sum;
}
int main ( int argc, char *argv[] )
{
int sum;
//鍒涘緩涓涓寚鍚慙ua瑙i噴鍣ㄧ殑鎸囬拡銆?/span>
L = lua_open();
//鍑芥暟鍔犺澆Lua搴?/span>
luaL_openlibs(L);
//鍔犺澆鑴氭湰
luaL_dofile(L,"add.lua");
//璋冪敤鍑芥暟
sum = luaadd( 10, 11);
// print the result
printf( "The sum is %d\n", sum );
//鍏抽棴 閲婃斁璧勬簮
lua_close(L);
return 0;
}
娉ㄦ剰闂錛?br>1.宸ョ▼澶存枃浠秎ua.h絳夛紝緙栬瘧鍣ㄨ兘鎵懼埌錛屽彲浠ラ氳繃宸ュ叿鏉ヨ緗ご鏂囦歡璺緞銆?br>2. 娣誨姞lua5.1.lib鍒癘bject/library modules鍒楄〃涓?
嫻嬭瘯緇撴灉
The sum is 21
鍏充簬lua鐨勮璇?br>http://www.shnenglu.com/expter/archive/2008/12/24/70224.html
]]>
//澹版槑涓涓嚱鏁?br>function pythagorean(a, b)
local c2 = a^2 + b^2
return math.sqrt(c2)
end
//鎵撳嵃緇撴灉
int(pythagorean(3,4))
//鐩存帴杈撳嚭
-- Hello World in Lua
print("Hello World.")
//寰幆杈撳嚭
for i=1,5 do
print("i is now " .. i)
end
//瀹氫竴涓彉閲?/p>
b = 10
print(b) --> 10
b = nil //鍒犻櫎涓涓彉閲?/p>
print(b) --> nil
鎬葷殑鏉ヨ lua鏈変互涓嬪嚑鐐癸細
鈶?/span> 鍙墿灞曟?/span>銆?/span>Lua鐨勬墿灞曟ч潪甯稿崜瓚婏紝浠ヨ嚦浜庡緢澶氫漢鎶?/span>Lua鐢ㄤ綔鎼緩棰嗗煙璇█鐨勫伐鍏鳳紙娉細姣斿娓告垙鑴氭湰錛夈?/span>Lua琚璁′負鏄撲簬鎵╁睍鐨勶紝鍙互閫氳繃Lua浠g爜鎴栬?/span>C浠g爜鎵╁睍錛?/span>Lua鐨勫緢澶氬姛鑳介兘鏄氳繃澶栭儴搴撴潵鎵╁睍鐨勩?/span>Lua寰堝鏄撲笌C/C++銆?/span>java銆?/span>fortran銆?/span>Smalltalk銆?/span>Ada錛屼互鍙婂叾浠栬璦鎺ュ彛銆?/span>
鈶?/span> 綆鍗?/span>銆?/span>Lua鏈韓綆鍗曪紝灝忓閥錛涘唴瀹瑰皯浣嗗姛鑳藉己澶э紝榪欎嬌寰?/span>Lua鏄撲簬瀛︿範錛屽緢瀹規(guī)槗瀹炵幇涓浜涘皬鐨勫簲鐢ㄣ備粬鐨勫畬鍏ㄥ彂甯冪増錛堜唬鐮併佹墜鍐屼互鍙婃煇浜涘鉤鍙扮殑浜岃繘鍒舵枃浠訛級浠呯敤涓寮犺蔣鐩樺氨鍙互瑁呭緱涓嬨?/span>
鈶?/span> 楂樻晥鐜?/span>銆?/span>Lua鏈夊緢楂樼殑鎵ц鏁堢巼錛岀粺璁¤〃鏄?/span>Lua鏄洰鍓嶅鉤鍧囨晥鐜囨渶楂樼殑鑴氭湰璇█銆?/span>
鈶?/span> 涓庡鉤鍙版棤鍏?/span>銆?/span>Lua鍑犱箮鍙互榪愯鍦ㄦ墍鏈夋垜浠惉璇磋繃鐨勭郴緇熶笂錛屽NextStep銆?/span>OS/2銆?/span>PlayStation II (Sony)銆?/span>Mac OS-9銆?/span>OS X銆?/span>BeOS銆?/span>MS-DOS銆?/span>IBM mainframes銆?/span>EPOC銆?/span>PalmOS銆?/span>MCF5206eLITE Evaluation Board銆?/span>RISC OS錛屽強鎵鏈夌殑Windows鍜?/span>Unix銆?/span>Lua涓嶆槸閫氳繃浣跨敤鏉′歡緙栬瘧瀹炵幇騫沖彴鏃犲叧錛岃屾槸瀹屽叏浣跨敤ANSI (ISO) C錛岃繖鎰忓懗鐫鍙浣犳湁ANSI C緙栬瘧鍣ㄤ綘灝卞彲浠ョ紪璇戝茍浣跨敤Lua銆?/span>