1. 程式人生 > >體驗Code::Blocks下的Windows GUI程式設計(32 bit and 64 bit)

體驗Code::Blocks下的Windows GUI程式設計(32 bit and 64 bit)

0. 前言

不知道為什麼,幾乎所有的C++程式設計教程都是從命令列版(控制檯應用程式)的Hello World開始的。然而,對於現在的年輕人來說,從小就用滑鼠點選視窗或圖示操作電腦,對於那個神祕黑色的視窗中的文字就像天書。對於我們這些從DOS時代走來的人,或許那個黑色視窗會喚起很多記憶,但是,對於當前的GUI化的時代來說,那個視窗已經沒有多少意義了。除非為了顯示我的知識淵博和高深莫測,通常我不會給年輕人講述那個黑色視窗中的東西。

既然現在學習C++程式設計的都是年輕人,我還是講一下怎樣構建GUI版的Hello World吧。

如果你還沒有搭建Code::Blocks平臺,請先看一下我的另一篇文章:《利用Code::Blocks搭建64位C++開發平臺》。

下面我要講述的內容包括:在Code::Blocks中用C++編寫一個Windows GUI程式,並編譯生成32 bit 和64 bit兩個版本。

1.使用嚮導新建一個Windows GUI程式

建立Windows GUI程式和建立Console application的操作幾乎是相同的,所以在看以下步驟之前,先看一下我的另一篇文章《體驗Code::Blocks下的C++程式設計》。

在下面的描述中,只要與建立控制檯程式相同的操作我將簡述或省略。這樣做不僅僅是為了節省我時間,也是為了給伺服器節省一點空間。

第一步:開啟新建專案嚮導

這一步跟建立控制檯程式是相同的,後續就有差別了。有兩種方法:

①主選單:File->New->Projects

②點選Start Here頁面中的Create New Project

第二步:在嚮導中選擇專案型別Win32 GUI project

第三步:選擇視窗型別,點選Next

提供兩種視窗型別,具體意義以後解釋,現在隨便選擇一個就可以了(比如選擇Dialog based)。

第四步:輸入專案名稱、檔案

選擇檔案儲存位置,輸入專案標題後,專案檔名自動按標題生成。

介面及操作與控制檯程式相同,程式名設定為ghello。

第五步:選擇編譯器

這一步介面、內容及操作與控制檯程式相同,還是保持預設就可以了,直接點選Finish就行了。

生成的檔案比控制檯檔案要多一些,包括原始碼、標頭檔案、資原始檔等。

第六步:編譯執行

點選上圖中的編譯執行按鈕,就會執行編譯過程。只要不出現錯誤,編譯連結完成後就會執行程式,出現以下視窗。這只是一個空視窗,儘管沒有內容,但外觀跟平時使用的程式的視窗是一樣的。

到這一步,你的第一個windouows GUI應用程式已經建立完成了,是不是很簡單?

2. 改為Hello World

儘管生成的是一個空視窗,起碼說出現了熟悉的樣貌了。以後根據需要,新增程式碼,就可以實現更多的功能。

現在先把視窗的標題由Dialog改為Hello World

雙擊Code::Blocks左邊管理欄中的檔案resource.rc,你會在右邊的程式碼編輯區看到以下程式碼

// Generated by ResEdit 1.5.10
// Copyright (C) 2006-2012
// http://www.resedit.net

#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"


//
// Dialog resources
//
LANGUAGE 0, SUBLANG_NEUTRAL
DLG_MAIN DIALOG 0, 0, 186, 95
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "Ms Shell Dlg"
{
}


//
// Manifest resources
//
LANGUAGE 0, SUBLANG_NEUTRAL
1                  RT_MANIFEST    ".\\manifest.xml"

將其中的CAPTION "Dialog"修改為CAPTION "Hello World"。然後按第六步的操作編譯執行。執行結果視窗的標題是不是程式設計Hello World了?

儘管這個修改沒有實際意義,但是,起碼說,它按著我們的意圖改變了。以後,我們可以通過修改或增加程式碼,實現我更多的、有意義的功能。

 3. 分別編譯為32bit和64bit程式

對於原生的程式碼來說,編譯生成32bit和64bit程式是很簡單的。

如果你使用的是32bit的TDM-GCC,編譯結果一定是32bit的應用程式。如果你使用的是64bit的TDM-GCC,按以下步驟操作,可編譯生成32bit和64bit程式。

 3.1 編譯生成32bit應用程式

第一步:在Code::Blocks左邊管理欄中的專案名稱ghello上右擊滑鼠,從彈出選單中選擇Build options開啟專案構建選項視窗。

第二步:選擇構建目標,然後點選[OK]

如圖所示,你看到在專案構建選項視窗中有構建目標選項。勾選32bit選項,則編譯生成的程式為32bit的,勾選64bit或者兩個都不選,則編譯生成的程式為64bit的。

勾選其中32bit的,然後點選[OK],關閉構建目標選項視窗。

第三步:重新編譯

在Code::Blocks左邊管理欄中的專案名稱ghello上右擊滑鼠,從彈出選單中選擇Rebuild,開始重新編譯程式。然後,耐心等待直到編譯完成。

第四步:執行並驗證編譯結果

點選Code::Blocks上部工具欄中的執行按鈕(綠色三角)執行程式,出現標題欄中顯示Hello World的視窗。

右擊電腦螢幕左下角的作業系統主選單按鈕,從彈出選單中選擇“工作管理員”,開啟工作管理員視窗。

從視窗的“應用”欄中找到gheloo.exe,你會發現後面有(32位)標記,表示應用程式是32bit的。

3.2 編譯生成64bit應用程式

重複執行4.1中的第一步至第四步,不同之處是在第一步的構建目標選項視窗中勾選64bit,其他操作完全相同。

你會發現重新編譯後在第四步的工作管理員視窗中gheloo.exe後的括號沒有了,說明編譯生成的應用程式是64bit的了。

4 結束語

感覺怎麼樣?很簡單吧?

其實,學會編寫程式是一件很簡單的事情,不過,要想學好、學精,就需要多學多練,逐步積累經驗。可以從簡單的程式開始,逐步增加功能。也可以選用別人的一個程式,嘗試著修改,實現自己需要的功能。

就像學習語文一樣,學會了單個字詞,然後組成語句。語句多了就成了文章,語句間有了好的邏輯關係就成了好文章