先把lua, luabind 編成靜態(tài)庫,(下圖只是debug,release類似):

做完之后整理,lua, luabind 以sdk 形式組織好,我是這樣組織:
\luabind_build\sdk\luabind\include
\luabind_build\sdk\luabind\msvc-9.0-sp1\lib
\luabind_build\sdk\lua\include
\luabind_build\sdk\lua\msvc-9.0-sp1\lib
這樣,把sdk中的東東保存一份,方便以后使用。寫一個MFC小程序測試

1 //關鍵代碼
2 //mfc class function
3 void CMFC_LuaDlg::SetEditText(const char* text)
4 {
5 Edit_1.SetWindowText(text);
6 UpdateData(FALSE);
7 }
8 //register
9 luabind::module(L)
10 [
11 luabind::class_<CMFC_LuaDlg>("mfc_dlg")
12 .def"set_text",&CMFC_LuaDlg::SetEditText)
13 ];
14 //load lua file
15 if (0==luaL_dofile(L,filepath))
16 {
17 ret=true;
18 }
19 //run lua function
20 luabind::call_function<void>(L,"update_text",dlg);
21
腳本內(nèi)容:2 //mfc class function
3 void CMFC_LuaDlg::SetEditText(const char* text)
4 {
5 Edit_1.SetWindowText(text);
6 UpdateData(FALSE);
7 }
8 //register
9 luabind::module(L)
10 [
11 luabind::class_<CMFC_LuaDlg>("mfc_dlg")
12 .def"set_text",&CMFC_LuaDlg::SetEditText)
13 ];
14 //load lua file
15 if (0==luaL_dofile(L,filepath))
16 {
17 ret=true;
18 }
19 //run lua function
20 luabind::call_function<void>(L,"update_text",dlg);
21
1 function update_text(dlg)
2 dlg:set_text("你好,歡迎來到lua 腳本世界")
3 end
運行結果:2 dlg:set_text("你好,歡迎來到lua 腳本世界")
3 end
