2012年7月9日 星期一

返璞歸真, 重新學習 GUI 程式

感謝 qrtt1 提供
一直沒有真的去學習 windows SDK 的寫法, 都是使用 C++ Builder 或是 qt 來寫 windows 程式。由於這些 framework 把最深層的東西包裝的太好, 似乎無法了解 windows 的樣貌。我決定從 windows 3.1 來作練習, 也許真的過時了, 不過基本原理都是一樣的。

一直以來對 GUI 程式情有獨鍾, 如果讓我來設計的話, 可以讓 GUI 程式像 qt 或是 C++ Builder 這麼好用嗎?不需要在特地包裝這一層? 嗯 ... 應該不行, 我的功力還差的遠, 能完成一個小型 GUI 系統就很吃力了, 還要有漂亮的架構, 可能還得再練上幾年。



曾經透過閱讀事件驅動程式設計在 linux 以 ncurses 完成和書中類似的程式。年代久遠, 幾乎已經忘記整個內容了。只剩下模糊的概念。

文字視窗的作業環境:


source code: https://github.com/descent/shadow
這是另外兩個文字視窗系統, 我這個玩具當然完全比不上。 
  1. twin: http://sourceforge.net/projects/twin/?source=navbar
  2. Turbo Vision: http://tvision.sourceforge.net/

這次捲土重來, 以 win16 sdk 來練習, 希望能小有成就。

install windows 3.1


install et3


↓ 令人懷念的 bc31 和 turbo c/c++ 有著類似的 IDE


bc31 & VC1.52


↓ 第一次使用的 VC 1.52


↓ bc31 win16


bc31 不愧是當時的開發工具霸主, 比起使用 msc, vc 系列, 開發 windows 3.1 時比較容易, 不用去定義一些除了程式之外的其他設定檔。ex: def, resource file。詳細開發過程我不清楚, 這是我最近看的 XD。

按著 menu 上的選單就可以輕鬆 compile/run 出程式, 真的很簡單, 不過在接受 GNU 洗禮之後, 我想知道 IDE 下的秘密, 若是要自己完成整個 compile 指令, 該怎麼做呢?要 link 哪些 library? windows XP 還好查, windows 3.1 好像要花點功夫。c/c++ 程式員應該要了解這些事。吃完糖果還是要了解一下糖果是怎麼包裝的。

習慣了 bash 自動補齊功能, 4dos 也有類似的功能。linux bash 愛用者強烈建議使用。
http://4dos.ilbello.com/

ref:
這是安裝 windows nt 31, 不過還是可以參考一下。
http://gunkies.org/wiki/Installing_Windows_NT_3.1_on_Qemu

1 則留言:

使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。

我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。