轉自:http://www.jb51.net/article/55471.htm
一、准備工作
1、下載Lua源碼,地址:http://www.lua.org/download.html(我用的是目前最新版5.2.3)
2、將源碼放在合適的盤(我的在D盤,路徑D:/Lua-5.2.3/src)
3、打開vs2013新建一個win32控制台應用程序(Win32 console project ),我將他取名為LuaLib
4、確定后,會彈出應用程序向導的提示框,點擊下一步。應用程序類型選擇靜態庫(static Library),附加選項去掉預編譯頭(Precomplied Header ),點擊完成。
5、向工程中添加頭文件(.h)與源碼(.c)
1)將D:/lua-5.2.3/src中所有.h文件復制到頭文件(Header Files)中
2)將D:/lua-5.2.3/src中所有.c文件復制到源文件(Code Files)中
6、配置項目屬性,打開項目->屬性->配置屬性
1)在C/C++項中點開常規,第一項附加包含目錄中填上D:/lua-5.2.3/src
2)在C/C++項中點開高級,第二項編譯為選擇編譯為C代碼(/TC)
7、生成項目,生成成功后會Debug(Release)文件中生成lua.lib文件。在這里我生成時報了錯:
error c4996: 'fopen': This function or variable may be unsafe
若出現這個錯誤,需要在屬性頁的預處理器定義中加入_CRT_SECURE_NO_WARNINGS,再次生成就可以了。
二、在C++代碼中調用Lua
1、新建win32控制台應用程序,取名為TestLua,后面的不用改
2、在該項目的通用屬性中添加Lualib的引用
3、在C/C++項中點開常規,第一項附加包含目錄中填上D:/lua-5.2.3/src
4、在TestLua.cpp中寫入代碼
#include "stdafx.h" #include <stdio.h> #include <string.h> #include <iostream> extern "C"{ #include <lua.h> #include <lualib.h> #include <lauxlib.h> } int _tmain(int argc, _TCHAR* argv[]) { using namespace std; lua_State *L = luaL_newstate(); luaL_openlibs(L); luaL_dofile(L, "test.lua"); lua_close(L); cin.get(); return 0; }
5、在TestLua目錄下放入事先寫好的test.lua文件
test.lua 這么寫:print("hello, world!\nThis is lua.\n")
6、設置TestLua為啟動項,並運行項目