VS2012+LUA環境搭建


1 、啟動VS2012,選擇C++下的"win32"項目類型中的"Win2控制台應用程序"
2、工具——選項——項目和解決方案——VC++目錄——可執行程序(C:\Program Files\Lua\5.1);包含文件(C:\Program Files\Lua\5.1\include);庫文件(C:\Program Files\Lua\5.1\lib);項目——'項目名'屬性 子菜單——配置屬性——鏈接器——輸入——附加依賴項(lua51.lib lua5.1.lib)


#include "stdafx.h"
 
#include  
#include  
extern "C"   
{  
    #include "lua.h"  
    #include "lauxlib.h"  
    #include "lualib.h"  
}  
  
#pragma comment(lib, "lua51.lib")  
 

頭文件lua.h定義了lua提供的基礎函數,包括創建lua環境、調用lua函數(如lua_pcall)、讀寫lua環境中全局變量,以及注冊供lua調用的新函數等。Lua.h中定義所有內容都有一個lua_前綴。

頭文件lauxlib.h定義了輔助庫(auxiliary library,auxlib)提供的函數。它的所有定義都以luaL_開頭(如luaL_loadbuffer)。輔助庫是一個使用lua.h中API編寫出的一個較高的抽象層。Lua的所有標准庫編寫都用到了輔助庫。

注意:Lua腳本的編譯執行是相互獨立的,在不同的線程上執 行。通過luaL_newstate()函數可以申請一個虛擬機,返回指針類型lua_State。今后其他所有Lua Api函數的調用都需要此指針作為第一參數,用來指定某個虛擬機。所以lua_State代表一個lua虛擬機對像,luaL_newstate()分配 一個虛擬機。lua類庫管理着所有的虛擬機。銷毀指定虛擬機的所有對像(如果有垃圾回收相關的無方法則會調用該方法)並收回所有由該虛擬機動態分配產生的 內存,在有些平台下我們不需要調用此函數,因為當主程序退出時,資源會被自然的釋放掉,但是但一個長時間運行的程序,比如后台運行的web服務器,需要立 即回收虛擬機資源以避免內存過高占用。

 

 

搭建編程環境的步驟和使用其他第三方C庫沒有什么區別,先設置好lua的3個頭文件的路徑,和一個lib 的路徑,然后編寫C代碼。

你肯定已經看過相關的手冊了,正確初始化lua_State以后,可以使用luaL_dofile執行磁盤上的lua腳本文件,也可以使用luaL_dostring執行腳本片段。后者相當於JScript里面的eval()函數,可以執行lua腳本文件中的全部或某一個特定部分。

如果擔心找不到,就把它們放在同一個文件夾下,require會默認搜索包括當前路徑下的lua、clibs文件夾


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM