今天我們要介紹CUI Windows Application和 GUI Windows Application分別如何實現,首先我們講到CUI Windows Application,CUI是Console User Interface的縮寫,是指像dos那樣在text mode下操控的介面,而在這樣的使用者界面模式下使用的程式稱為CUI Windows Application,程式的輸入輸出主要是直接以文字形式顯示在視窗中,但CUI Windows Application有其限制,因為他一開始設計就是要在dos下做執行,所以有些在dos能做的事在windows下就不能做像是直接對輸入輸出設備的暫存器做存取,這點在windows下是禁止的,因為windows有所謂的保護模式是不允許直接存取暫存器或是記憶體以免造成系統崩潰。CUI Windows Application的實現是最為容易,許多學校在教授C語言或java都是教授如何撰寫這種程式,所以這裡不多做贅述。至於GUI Windows Application,GUI是Graphic User Interface的縮寫,就是所謂的圖形化界面。那要撰寫GUI Windows Application可以透過C/C+++透過使用Windows API完成或是使用Visual Studio的windows form專案去完成,當然也可以透過java的Awt/Swing API去達成,當然也可以使用GTK或QT但那比較常在linux系統下使用,在windos要使用就比較麻煩。在這裡特別推薦使用MONO,他可以寫出跨平台的程式有興趣的朋友可以試試。That's all.XD
- 11月 03 週日 201314:07
CUI Windows Application和 GUI Windows Application的實現概論
- 9月 06 週四 201210:15
C語言呼叫dll
dll是Dynamic-link library的縮寫。dl的好處在於當程式呼叫到dll檔中的函式,才會把dll載入記憶體,所以節省了記憶體空間。因為當你用完後就可以free掉那 塊記憶體,不像一般在程式內部宣告的函數會一直佔用記憶體空間。使用dll還有一個好處,就是在程式中用到很多函數,如果將部份函數在dl中,程式的維護 會比較容易。
在C語言中,要呼叫dll要先熟悉函數指標,函數指標跟一般指標不同,在於他指向的不是一般型別而是函數。函數指標的宣告方式,跟函數原型的宣告差不多,宣告的形式為回傳值型別 (*函數指標變數名)(參數1型別,參數2型別,.....),在本例中我們是將函數指標定成一個新型別,宣告為 typedef void(*FuncPtr)(LPCTSTR),這樣在我們要用到這類型的函數指標,只要宣告成如 FuncPtr 指標變數名稱就 不用寫的落落長,這裡要注意的是你宣告的函數指標要能跟你要呼叫的dll中的函數能配對。宣告完指標接著,就是要利用Windows API中的LoadLibrary將dll載入獲取控制碼,然後再透過GetProcAddress取得dll中欲操作的函數位址,將宣告的函數指標指向 這個位址。然後就跟使用一般函數般使用函數指標,例如在本例中我是這樣使用myDllFunc(TEXT(\"Hello, World!\")),使用完記得用FreeLibrary將dll佔的記憶體free掉,大致上的操作流程是這樣。說了那麼多還是要看程式碼才會更容易了解。首先我們要先創一個dll檔,步驟如下(開發環境為Code::Block):
(1)開啟Code::Block(廢話XD
(2)File->New->Project,選Dynamic Link Library,按Go
(3)輸入Project名稱,Next
(4)這邊基本上不用更動,直接按Finish
(5)代碼
main.h部分
1
