VC要編譯LUA文件必須先配置VC編程環境。。我用的是VC6.0,lua 5.1.4版
首先將lua的"lua.h" ,"lualib.h", "lauxlib.h" 這三個放在vc程序include文件夾下
然後將lua的lua5.1.lib放在lib文件夾下就OK了
下面看看我寫的一個小例子:
a.cpp
#include "windows.h"
extern "C"{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#pragma comment(lib,"lua5.1.lib")
lua_State * L;
static int clib(lua_State *L) //給lua調用的c函數必須定義成static int XXX(lua_State *L)
{
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
lua_pushstring(L,path);
return 1; //爲什麼要返回1?這是有依據的,該函數把結果壓入了棧,lua調用該函數將從棧中
//取1個結果
}
int main ( int argc, char *argv[] )
{
int sum;
//創建一個指向lua解釋器的指針
L = luaL_newstate();
//加載lua標準庫
luaL_openlibs(L);
//註冊C++函數
lua_register(L,"clib",clib);
//加載腳本
luaL_dofile(L,"4.lua");
//調用函數
lua_getglobal(L,"run");
//運行函數並把結果壓入棧
lua_pcall(L,0,0,0);
//關閉並釋放資源
lua_close(L);
return 0;
}
LUA文件
function run()
print("call running from c")
print(clib())
end