c 和MFC 互動通過lua指令碼例項

2021-08-10 16:43:52 字數 1852 閱讀 7116

width = 600

height = 400

local pathdlg =1000

local contendlg = 1002

--alert(gettext(1000))

function load()

local path = gettext(pathdlg);

--alert(txt);

local inp = io.open(path, "rb") //去讀取檔案 如 main.lua

local data = inp:read("*all") //讀取整個檔案的內容

settext(contendlg, data)

end

// my_lua_mfcdlg.cpp : 實現檔案

//#include "stdafx.h"

#include "my_lua_mfc.h"

#include "my_lua_mfcdlg.h"

#include "afxdialogex.h"

#include #include using namespace std;

extern "c" //包含lua的庫 標頭檔案

;#ifdef _debug

#define new debug_new

#endif

lua_state* lua;

// cmy_lua_mfcdlg 對話方塊

cmy_lua_mfcdlg::cmy_lua_mfcdlg(cwnd* pparent /*=null*/)

: cdialogex(cmy_lua_mfcdlg::idd, pparent)

void cmy_lua_mfcdlg::dodataexchange(cdataexchange* pdx)

begin_message_map(cmy_lua_mfcdlg, cdialogex)

on_wm_paint()

on_wm_querydragicon()

on_bn_clicked(idc_button1, &cmy_lua_mfcdlg::onbnclickedbutton1)

on_bn_clicked(idcancel, &cmy_lua_mfcdlg::onbnclickedcancel)

end_message_map()

#include static cmy_lua_mfcdlg* dlg;

int alert(lua_state* lua) //列印

// cmy_lua_mfcdlg 訊息處理程式

int gettext(lua_state* lua)

int settext(lua_state* lua)

bool cmy_lua_mfcdlg::oninitdialog()

// 如果向對話方塊新增最小化按鈕,則需要下面的**

// 來繪製該圖示。對於使用文件/檢視模型的 mfc 應用程式,

// 這將由框架自動完成。

void cmy_lua_mfcdlg::onpaint()

else }

//當使用者拖動最小化視窗時系統呼叫此函式取得游標

//顯示。

hcursor cmy_lua_mfcdlg::onquerydragicon()

void cmy_lua_mfcdlg::onbnclickedbutton1()

void cmy_lua_mfcdlg::onbnclickedcancel()

Lua和C 的互動

step1 搭建好vs和lua相互動的環境 2.有lua lib.lib這個檔案 3.開始配置 滑鼠放在工程名那 右鍵選屬性 位址就選上面有原始碼的檔案路徑。如上,把引用目錄點開進行編輯位址是選lib檔案的位址 如上,吧庫目錄點開進行編輯位址也是lib檔案的位址 step2 給這個工程新增標頭檔案 ...

Lua和C 互動 全域性陣列互動

陣列是key值從1開始並連續遞增的table。索引號是從1開始,不是從0開始。lua還提供了一些只針對陣列進行操作的api,如下 lualib api lua integer lual len lua state l,int idx lual len 使用於陣列,可得到陣列元素個數 以數字形式返回給...

Lua和C如何互動 一

要理解lua和c的互動,先要理解堆疊和全域性表兩個概念 lua和c c 語言互動的主要方法是乙個無處不在的虛擬棧,棧的特點是先進後出.lua的全域性表可以想象成乙個map雜湊表結構,比如lua有乙個變數 name hello world 全域性表中存放了name和hello world的對應關係,可...