c++調用lua

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  


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章