1 下载lua; 到lua目录下执行 etc/luavs.bat 即可
2 vs中
2.1 general指定头文件依赖目录
2.2 input目录输入依赖的lib名 lua51.lib
2.3 指定lib的目录
2.4 代码中包含lua.h等头文件时需要 extern c...
#include "stdafx.h" extern "C" { #include <stdio.h> #include <lua.h> #include <lauxlib.h> } //#pragma comment( lib ,"lua51.lib") lua_State *L; /** * 函数调用过程是一个入栈出栈的过程,需要把函数,参数分别压入堆栈, * 通过lua_call,调用堆栈中的函数并弹出相关数据 * 这个过程跟java虚拟机的字节码方法调用基本一致,把数据送入操作栈,然后调用、出栈 * */ int luaadd(int x, int y) { int sum; lua_getglobal(L, "add"); lua_pushnumber(L, x); lua_pushnumber(L, y); /* LUA_API void (lua_call) (lua_State *L, int nargs, int nresults); */ lua_call(L, 2, 1); sum = (int)lua_tonumber(L, 1); lua_pop(L, 1); return sum; } int main(int argc, char *argv[]) { char line[BUFSIZ]; char *name; L = lua_open(); luaL_dofile(L, "test.lua"); printf("1+2=%d/n", luaadd(1, 2)); lua_getglobal(L, "name"); name = (char *)lua_tostring(L, 1); lua_pop(L, 1); printf("name: %s", name); lua_close(L); return 0; }