mirror 散播福音的祭司
註冊時間: 2007-07-27 文章: 174
828.60 果凍幣
|
發表於: 2009-7-2, PM 11:52 星期四 文章主題: 利用lua執行實質函數 |
|
|
代碼: |
#include <iostream>
extern "C"
{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#pragma comment(lib,"lualib.lib")
using namespace std;
int testCF(lua_State *L)
{
// 取得第一個參數
char *s = (char*)luaL_checkstring(L,1);
// 取得第二、三個參數
int i = luaL_checknumber(L,2);
int j = luaL_checknumber(L,3);
cout << s << i+j << endl;
return 0;
};
void main()
{
// 創建一個指向 Lua 解釋器的指針
lua_State *L = lua_open();
//函數加載 Lua 庫
luaL_openlibs(L);
lua_pushstring(L,"testCF");
// 加載一個函數 testCF 到腳本
lua_pushcfunction(L,(lua_CFunction)testCF);
lua_settable(L, LUA_GLOBALSINDEX);
// 這裡用 dostring 執行腳本
luaL_dostring(L,"testCF('Name:',1,2) testCF('Game:',2,3)");
// 關閉釋放資源
lua_close(L);
//getchar();
system("PAUSE");
}; |
輸出結果
代碼: |
Name:3
Game:5
請按任意鍵繼續 . . . |
|
|