最近寫的GUI Framework

10 01 2008

以前常常使用C++Builder ,主要是他的VCL 很簡單易用。

但是Borland的IDE 以及Compiler 實在有很多問題,也好幾年沒有什麼大改進。

所以我已經著手自己設計一套類似於VCL的GUI Framework.

而且是用純C++撰寫。

然後支援gcc,vc++,borland c++等編譯器編譯。

主要特色是語法與VCL很接近,這也是我設計這套framework的主要目的。

我認為SmartWin++,WTL,xWidgets等等實在都用到太多的template以及仍然沒有脫離MFC的包袱,

很多語法不太人性化。

VCL是我見過最清楚簡單的GUI Library,但缺點是他的底層是用pascal撰寫的,而且只有Borland自己的compiler才能編譯,語法也不是符合標準。

以下為使用我的library寫出來的Hello world!

支援g++ (mingw) 編譯器

#include “Gui_core.hpp”
using namespace std;
class TForm1:public TForm{
    public:
        TFORM_INIT(TForm1);       
        TForm1()
        {
            ;           
        }
};
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{   
    TForm1 win(“Form1”);
    win.hInstance = hInstance;
    win.hPrevInstance = hPrevInstance;
    win.Create();
    win.Caption = “HelloWorld!”;
    win.Width = 400;
    win.Height = 300;       
    return ApplicationMain();
}

  twl.jpg

編譯出來的檔案大小只有 51kb,與C++Builder用VCL編譯出來的Hello World (581kb)

差異很明顯。(在此都用static linking)

這個framework目前還在起步階段,還沒完成,我也沒有估計什麼時候會完成,畢竟一個人的能力有限,大概是有空的時候才會繼續完成他吧。