使用aardio 快手 程式設計

2021-07-10 16:15:20 字數 1915 閱讀 3511

2 介面

3 新建乙個桌面工程

4 介面設計

5 生成exe

6 自動生成的**和自己新增的**

button的事件函式中的一句是自己新增的,其他為自動生成;

經過以上步驟;生成了乙個視窗介面的可直接執行的exe。

在快手的論壇中找一段示例**,加入上面的demo1中;

import tcc; 

vm = tcc( );//建立tcc編譯器 

vm.addlib( "user32","kernel32","gdi32" ) //引用庫 

vm.output( "/bin.dll", code ) //編譯c原始碼,生成dll

vm.close(); //收工

//載入生成的dll

var dll = raw.loaddll( "/bin.dll",, "cdecl" );//第三個引數指定c語言呼叫約定:cdecl

//宣告api函式

msgbox = dll.api( "msgbox","int(string str)"); 

msgbox( "c語言你好!" ); 

//不宣告也可以直接呼叫api函式,如下:

dll.msgbox( "c語言你好!" ); 

看上去是一段呼叫win32 api的messagebox的**;

執行;提示安裝tcc擴充套件庫;

裝完之後,執行**;沒有預期結果;看來此段**呼叫win32 api不行;

在快手的幫助中找了一段**;

user32 := raw.loaddll("user32.dll");

user32@._api_origin := [email protected]; //修改元表中的定義的方法

[email protected] = function(f,p,c)

io.open();//開啟控制台

messagebox := user32.api( "messageboxa", " void ( int hwnd, string lptext,string lpcaption ,int utype )","stdcall");//最後乙個引數可以省略

messagebox( 0, "這是乙個測試對話方塊", "對話方塊標題", 0x00001000 );

加入demo1;執行;出現下圖;控制台開啟了;訊息框也出現了;看來確實可直接呼叫c的dll和win32 api; 不過可能文字編碼有點問題;

到此為止看上去此工具確實還不錯;

再看此工具帶了很多標準庫可呼叫;看上去功能還是很強;

以後有時間繼續研究;

aardio中call函式的一種使用

有三個按鈕,分別對應了三種功能,用func1 func2 和func2 表示。在響應按鈕時,要先執行前置函式pre 再執行按鈕對應的函式func 最後執行後置函式suf 如下所示 mainform.button1.oncommand function id,event mainform.button...

2018 9 快手筆試程式設計題

題目描述 給你二叉樹的先序和中序遍歷的值,求出中序遍歷的求和樹。每個節點的和等於其左右孩子節點的value的和。思路 先建樹,直接遞迴求和輸出就好了。我簡化了輸入,原題的輸入是字串輸入,當時一直段錯誤,卡了快乙個小時,這個 能過樣例,不知道能不能過全部的資料。include include incl...

使用GDI 程式設計

1.引言 gdi 是windows xp中的乙個子系統,它主要負責在顯示螢幕和列印裝置輸出有關資訊,它是一組通過c 類實現的應用程式程式設計介面。顧名思義,gdi 是以前版本gdi的繼承者,出於相容性考慮,windows xp仍然支援以前版本的gdi,但是在開發新應用程式的時候,開發人員為了滿足圖形...