通过c++调用lua 脚本,
    环境VC++6.0
    lua  sdk 5.1
   在调用前 先认识几个函数。
1. 调用lua_open()将创建一个指向Lua解释器的指针。 
2. luaL_openlibs()函数加载Lua库。 
3. 使用luaL_dofile()加载脚本并运行脚本。 
4. lua_close()来关闭Lua指向解释器的指针。 
5. 调用lua_getglobal()将add()函数压入栈顶,add()为lua函数。
6. 第一个参数x,通过调用lua_pushnumber()入栈。
7. 再次调用lua_pushnumber()将第二个参数入栈。
8. 使用lua_call()调用Lua函数。
9. 调用lua_tonumber()从栈顶取得函数的返回值。
10. lua_pop()移除栈顶的值。
代码
add.lua
1 function add ( x, y )
function add ( x, y )
2 return x + y
    return x + y
3 end
end
4
 
main.cpp
 #include <stdio.h>
#include <stdio.h>


 extern "C"
extern "C"  {
{
 #include "lua.h"
#include "lua.h"
 #include "lualib.h"
#include "lualib.h"
 #include "lauxlib.h"
#include "lauxlib.h"
 }
}


 /**//* the Lua interpreter */
/**//* the Lua interpreter */
 lua_State  * L;
lua_State  * L;

 int luaadd ( int x, int y )
int luaadd ( int x, int y )


 {
{
 int sum;
    int sum;
 
    
 //函数名
    //函数名
 lua_getglobal(L, "add");
    lua_getglobal(L, "add");
 
    
 //第一个参数压栈
    //第一个参数压栈
 lua_pushnumber(L, x);
    lua_pushnumber(L, x);
 
    
 //第二个参数压栈
    //第二个参数压栈
 lua_pushnumber(L, y);
    lua_pushnumber(L, y);

 //调用函数
    //调用函数
 lua_call(L, 2, 1);
    lua_call(L, 2, 1);
 
    
 //得到返回值
    //得到返回值
 sum = (int)lua_tonumber(L, -1);
    sum = (int)lua_tonumber(L, -1);
 lua_pop(L, 1);
    lua_pop(L, 1);
 
    
 return sum;
    return sum;
 }
}

 int main ( int argc, char *argv[] )
int main ( int argc, char *argv[] )


 {
{
 int sum;
    int sum;
 
    
 //创建一个指向Lua解释器的指针。
    //创建一个指向Lua解释器的指针。
 L = lua_open();
    L = lua_open();
 
    
 //函数加载Lua库
    //函数加载Lua库
 luaL_openlibs(L);
    luaL_openlibs(L);

 //加载脚本
    //加载脚本
 luaL_dofile(L,"add.lua");
    luaL_dofile(L,"add.lua");
 
    
 //调用函数
    //调用函数
 sum = luaadd( 10, 11);
    sum = luaadd( 10, 11);
 
    
 // print the result
    // print the result 
 printf( "The sum is %d\n", sum );
    printf( "The sum is %d\n", sum );
 
    
 //关闭 释放资源
    //关闭 释放资源    
 lua_close(L);
    lua_close(L);
 
    
 return 0;
    return 0;
 }
}

注意问题:
1.工程头文件lua.h等,编译器能找到,可以通过工具来设置头文件路径。
2. 添加lua5.1.lib到Object/library modules列表中。 
测试结果
The sum is 21
关于lua的认识
http://www.cppblog.com/expter/archive/2008/12/24/70224.html