lua語言以其卓越的可擴充套件性、簡單、高效率和與平台無關性在遊戲領域得到廣泛應用。今天花了一些時間學習vc和lua如何混合開發,編寫了乙個小例程,和大家分享一下這方面的經驗。
首先在首先編寫乙個lua指令碼函式,**如下:
function
add ( x, y )
returnx +
y;end
將這個**儲存為add.lua。
接著我們新建乙個mfc對話方塊工程:calc。這個程式實現簡單整數加法運算。
首先在對話方塊類定義乙個lua虛擬機器指標以及加法運算所需要的變數:
/*** \brief lua 虛擬機器指標。
*/lua_state
*m_plua;/**
* \brief 加法運算的左運算元。
*/int
m_nleftnum;/**
* \brief 加法運算的左運算元。
*/int
m_nrightnum;/**
* \brief 加法運算的結果。
*/long
m_nresult;
在對話方塊初始化函式
ccalcdlg::oninitdialog
呼叫lua
虛擬機器初始化函式
initluastate
。initluastate
函式的**如下:/*!
* \brief 初始化lua虛擬機器。
** \return 無。
*/void
ccalcdlg::initluastate() }
在對話方塊的銷毀訊息響應函式裡關閉lua虛擬機器:
void
ccalcdlg::ondestroy()
在執行加法按鈕的訊息函式裡新增如下**:
void
ccalcdlg::onbnclickedok()
stackdump(m_plua);
m_nresult =(
int)lua_tonumber(m_plua, -1
);
//函式執行完了,執行結果被壓棧,所以取得最頂端的乙個數就是結果值,-1就是指取棧頂的值
stackdump(m_plua);
lua_pop(m_plua,
1);
//把值從棧裡清除,pop(彈出)乙個值
stackdump(m_plua);
updatedata(false);
}編譯環境為:
winxp + sp3
,vs c++2005 + sp1
,程式執行介面如下:
。 1. lua 和c之間的函式呼叫
2. lua整合進mfc**
VC 6 0開發Windows服務程式。
1.此時出現如下圖視窗介面,在此介面中選擇 服務 exe 然後選擇完成按鈕。在接下來的視窗中選擇確定按鈕。則vc完成嚮導並生成相應 效果如下 2 程式的進入點是全域性函式 twinmain,仔細看一下這個函式,我們會發現當我們執行程式時,可以加上引數,例如 winsvr regserver 或者 w...
VC環境和Matlab混合程式設計的實現方法
環境 vc6.0 matlab6.5 就我所知,vc環境和matlab混合程式設計的實現方法主要有兩個,乙個是利用matlab的.m檔案轉換為c 檔案,並生成.dll的方法 另乙個是在vc中呼叫matlab的compile引擎,通過matlab編輯環境進行操作。方法1 在 matlab6.5中將m ...
vc 如何建立程式 構造和繼承
include 定義乙個動物類 class animal void sleep 新增方法 void breathe 新增方法 如果還想定義乙個貓,狗,羊.乙個乙個類的去定義太麻煩了 用繼承的辦法來定義乙個魚的類 那麼animal類有的方法,fish就會繼承 類的繼承,父類 基類 子類 派生類 有三種...