c++呼び出しlua


VCがLUAファイルをコンパイルするには、まずVCプログラミング環境を構成する必要があります.私はVC 6を使っています.0,lua 5.1.4版
 
まず、luaの「lua.h」、「lualib.h」、「lauxlib.h」の3つをvcプログラムincludeフォルダの下に置きます.
 
次にluaのlua 5を.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