mfcui原始碼分析一

2022-08-24 07:30:12 字數 1429 閱讀 8363

一直在尋找一款lua作為介面開發語言指令碼框架,類似於web開發,使用html做介面,

lua作為指令碼語言進行行為控制,htmlayout是不二選擇,但是其搭配的預設指令碼並不是lua,這裡找到乙個

開源的框架,將htmlayout進行了改造,使其支援lua指令碼作為邏輯控制語言;

本系列文章將對mfcui原始碼進行簡要分析,並試圖將其改造為自己的介面開發框架,該框架使用的是lua5.1;

我們從作者提供的test/demo.lua說起,該檔案源**如下:

require('mfc');

mfc.register('exctrl.dll');--

載入擴充套件控制項

mfc.init();--

初始化localfn=arg[1]orstring.format('file://%s/demo.htm',mfc.workdir());

localw=mfc.newwindow(fn,true);--

啟動模態視窗

最後呼叫了

mfc.newwindow(fn,true)

函式來建立乙個模態視窗

,就顯示出來乙個視窗;

逐個函式去分析,先從

mfc.register('exctrl.dll')

函式來,該函式是c庫中實現的函式,實現**如下:

//註冊擴充套件控制項

staticintregister_exctrl(lua_state* l)

return1;

}while(0);

freelibrary

(hinstance);

return0;

}該函式先去載入

exctrl.dll

動態庫,然後獲取動態庫匯出函式

open_mfc_exctrl

,接著就呼叫了該函式,該函式**如下:

extern"c"

ccontroltype** winapi

open_mfc_exctrl(lua_state* l)

}returntrue;}

以上**對視窗的樣式進行了設定;

Mangos原始碼分析 一)

mangos 原始碼分析 realmd 登陸伺服器 realmd 主程式 launch the realm server int main int argc,char argv h.add authlistensocket 進行一些引數設定 while stopevent 伺服器主迴圈 return...

testlink原始碼分析 一

testlink是乙個很好的用例管理開源元件,因為我之前也作過乙個用例管理的系統,但是遠沒有testlink靈活,本著學習的態度,自己分析一下testlink的源 一點理解,和大家分享,希望能拋磚引玉。下面來看一下testlink的資料庫設計。1 許可權管理 testlink提供了豐富的許可權管理,...

rabbitmq原始碼分析(一)

解壓後工程很整齊 先分析啟動入口點,環境為win7,其實對程式入口點我一直不太了解,感覺erlang程式的入口點沒有固定的,雖然可以通過檔案中的一些東西來分析出來,感覺不方便。prepare方法是幹什麼的,哦確保時間管理器都安裝了必須的幾個事件處理模組。上 啟動rabbit時呼叫模組中的start ...