体验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 结束语

感觉怎么样?很简单吧?

其实,学会编写程序是一件很简单的事情,不过,要想学好、学精,就需要多学多练,逐步积累经验。可以从简单的程序开始,逐步增加功能。也可以选用别人的一个程序,尝试着修改,实现自己需要的功能。

就像学习语文一样,学会了单个字词,然后组成语句。语句多了就成了文章,语句间有了好的逻辑关系就成了好文章了。

原文地址:https://www.cnblogs.com/lexyao/p/11630403.html

时间: 2024-11-12 10:57:51

体验Code::Blocks下的Windows GUI编程(32 bit and 64 bit)的相关文章

如何在Code::Blocks下查看程序的汇编代码

学习C语言,Code::Blocks是个不错的IDE.有时候我们需要查看程序的对应的汇编代码,那么Code::Blocks如何才能像vc6.0中那样debug时候查看反汇编代码呢? 首先创建一个工程:Create a new project -> ConsoleApplication -> 填上工程文件名和project路径 -> 调试器和编译器默认. 随便在工程里写点什么代码,比如下面的一个递归代码为例:k7娱乐城 #include "stdio.h" #inclu

判断 Windows操作系统是32位还是64位

function IsWin64: Boolean; var Kernel32Handle: THandle; IsWow64Process: function(Handle: Windows.THandle; var Res: Windows.BOOL): Windows.BOOL; stdcall; GetNativeSystemInfo: procedure(var lpSystemInfo: TSystemInfo); stdcall; isWoW64: Bool; SystemInfo

利用Code::Blocks搭建64位C++开发平台

0.前言 随着64位计算机的普及,编写64位程序成为程序员基本的要求.我在<体验Code::Blocks下的C++编程>中描述了利用Code::Blocks官方提供的封装了编译器的安装包(codeblocks-17.12mingw-setup.exe)搭建开发环境编写C++程序的方法.但是,官方提供的安装包中的编译器是32位的,只能用于开发32位程序.如果你想开发64位的程序,就必须自己安装另外的编译器,而不是使用原来在安装包里的. 下面,我就介绍一下利用Code::Blocks搭建64位C+

【Code::Blocks】windows 环境下编译 Code::Blocks(已修正)

Code::Blocks 在2012-11-25发布了最新的12.11版本,相比上一个版本(10.05),Code::Blocks 进行了许多改进和更新(Change log). 引用 Wikipedia:Code::Blocks: Code::Blocks是一个免费.开源.跨平台的IDE,使用C++开发,并且使用wxWidgets做为GUI函式库.Code::Blocks使用了插件架构,其功能可以使用插件自由地扩充.目前, Code::Blocks主要针对开发C/C++程式而设计. Code:

Code Blocks+gtest环境配置

本文仅介绍Code::Blocks+gtest环境配置,gtest具体使用方法请参考: 玩转Google开源C++单元测试框架Google Test系列(gtest)(总) http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 环境概要 Code::Blocks 13.12 Windows 8.1 gtest-1.7.0 说明 gtest是一个优秀的开源C++单元测试框架,详细介绍可以参考官方网站.由于某种原因需要在Wind

Windows界面编程第十二篇 位图显示特效 飞入效果与伸展效果

分享一下我老师大神的人工智能教程吧.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net 转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/8696726 欢迎关注微博:http://weibo.com/MoreWindows Windows界面编程之位图显示特效系列目录: 1. <Windows界面编程第九篇位图显示特效交错效果> http:/

Code::blocks建立ffmpeg调试环境

一直想学ffmpeg源码,但是ffmpeg只支持gdb调试,它不能在VC上编译.断点调试.最近看到同事用code::blocks和Mingw编译x264,而x264也是不能在VC下编译的,因此尝试在code::blocks下编译ffmpeg,最终编译成功,而且能够断点调试.我编译的过程如下: 1. 从官网下载ffmpeg的源码,我下载的版本为ffmpeg-2.5.1 2. 将ffmpeg压缩包解压放到Mingw目录的:MinGW\msys\1.0\home\Administrator 3. 打开

【扫盲】】32位和64位Windows的区别

用户购买windows安装盘或者重新安装操作系统的时候,通常会遇到这个问题,就是不知道该如何选择使用32位操作系统和64位操作系统,有人说64位系统速度快,其实理论上确实是这样,不过具体还要根据你的个人电脑实际的硬件情况来进行选择. 扫盲必看 32位和64位Windows的区别 32位和64位Windows操作系统概述 一般关于32位和64位Windows操作系统的描述都是关于CPU和内存寻址关系,现在市场上销售的CPU产品大多数是支持64位的,而内存寻址方面说的就是操作系统的64位还是32位,

Windows下安装Code::Blocks 13.12进行C/C++开发

CodeBlocks 是一个开放源码的全功能的跨平台C/C++集成开发环境.CodeBlocks是开放源码软件.CodeBlocks由纯粹的C++语言开发完成,它使用 了蓍名的图形界面库wxWidgets(2.6.2unicode)版.对于追求完美的C++程序员,再也不必忍受Eclipse的缓慢,再也不必忍受 VS.NET的庞大和高昂的价格. CodeBlocks 提供了许多工程模板,这包括:控制台应用.DirectX应用.动态连接库.FLTK应用.GLFW应用.Irrlicht工程.OGRE应