Windows程序设计基础

win32程序开发的准备工作:windows当前的各类产品;开发工具及平台搭建;从Microsoft获取帮助;编码规范;

一、windows的产品

首屈一指的当然是桌面操作系统,从Windows95至Win8,作为80后,我见证了这个惊人的变化过程。作为程序员,我们不仅要惊叹前人的努力和创意,更要跟着巨人的步伐,走出自己的路子。闲话少说,本系列文章都是讨论32位环境下Win程序开发,使用的是windows为我们提供的平台API函数。当然,对于API而言,平台是什么没有什么关系,你学会了32位的程序设计,其他平台,同样适用。

Office办公套件也不得不提,各种数据处理工具,满足了各种工作学习的需要。其用户体验在软件应用领域一直处于领头位置。

其他windows的产品也逐渐走入大家的视线,必应平台,微软输入法,移动终端操作系统等。这些软件产品都是基于windows程序开发基础知识加上相关领域的开发API,所以,学习这一套知识还是非常有用的。开发过程中涉及到的语言先后会有VC++ C# 等。

二、准备开发平台和开发环境

这个话题就宽泛很多了,在我的IDE博客分类中,有各种开发平台的搭建方式,大家可以去查看,这里不再展开。个人推荐,刚开始学VC,可以使用比较古老的VC++6.0那是一个NB的稳定版本,搭建起来也很容易,安装结束后就可以使用。但是有个问题要注意,一定记得更新你的SDK,不要使用原来软件自带的98年的软件开发工具包。当然,你的系统如果是win XP以后的话,可以直接使用系统自带的SDK。

一句话概括API:编制程序时使用到的一组函数、结构体、宏定义的集合。如果API封装了某些功能,那么你就不必实现,直接拿来用就行了。

三、获取帮助

我喜欢用博客来解决遇到的问题,而正统一点的话,大家会选择区MSDN或者CSDN上寻找答案,MSDN是微软官方提供的技术支持,包含了编程信息、技术论文、文档、工具、程序代码以及测试程序包。所以,作为初学者还是要学会怎么查阅帮助文档。怎么使用帮助文档中给出的例程。如何使用帮助。这一系列问题很难从这么一个话题中展开来讲,因为那太多了,方法也多,资料也多,因人而异,我就不再赘述。另外,如果你是软硬件协同设计相关的学生,我推荐你在查阅MSDN未果的时候,可以试试IBM的知识平台,上边的知识正在构建,尤其是Linux相关的内容,特别多,可靠性也比较高。

四、应用程序实例

本系列的程序重点在于窗口程序,所以基本的C++程序就不再赘述了。当然,作为嵌入式的学生,用到界面的时候少,但是我学这部分知识是为了夫人。闲话少说,第一个程序:

#include <windows.h>
int main(int argc, char** argv)
{
    int nSelect = ::MessageBox(NULL, "This is content", "This is Name of Windows", MB_OKCANCEL);
    if(nSelect == IDOK)
    {
	::MessageBox(NULL,"You chose OK", "This is the name of choos",MB_OK);
    }else
    {
	::MessageBox(NULL,"You choose CANCLE","This is the name of CANCLE",MB_OK);
    }
    return 0;
}

 

之所以费这么大功夫列一段代码出来,是想告诉新学者,调用系统API没有多么神秘,一般三步走:

1.包含头文件,比较好一点的IDE会在你调用了API以后提示你需要加入的头文件,如果没有,那就积累经验吧,一般窗口的初始化程序都需要增加windows.h作为头文件;

2.链接程序的时候,调用相应的库文件,当然常见的库文件会在代码编译的同时自动链接,对程序员是透明的过程,但是当我们编写特殊的程序,比如视频监控软件开发的时候,就需要添加监控厂商提供给我们的库文件,此时使用如下指令,告诉编译器去链接目标文件(提前把要链接的文件放到工程目录中)

#pragma comment(lib,"mylib.lib")

 

3.在调用系统API的函数前加上::标志,跟自己定义的类区别开来。

五、编程规范

如果我的公司里有编写代码不规范的,我会毫不犹豫的给他放长假。规范的代码是编程的基础也是程序员的基本素养。一般编程规范会包含以下内容:

1.变量命名

所见即所得,非形式,简单,易记。一般win程序都会采用:限定范围的前缀_数据类型前缀+变量简称,首字母小写,不同相连词之间通过首字母大写区分。比如:

#define MAX_BUFFER 256		//常量全大写
char g_szTitle			//g表示全局变量,sz表示字符串类型
int m_nErrorCode		//m表示类成员变量,n表示整型
BOOL bResult			//b表示布尔型

一次性变量可以使用i,j,k,m,n,常用来表示整型数等,c,d,e常用来表示字符。局部变量应该都是小写字母,常量都是大写字母,函数名应该是动宾结构,类名或结构名应有一定的抽象性。

2.程序留白

程序中在合适的位置使用Tab,空格可以让程序看起来更加赏心悦目,具体的写法因人而异。我习惯时常打出空格,让代码更清晰。

3.代码注释

估计现在不知道给代码注释的人越来越少,重要性不再赘述,只是提出一些小技巧。具体的注释形式可以参照一个标准一直坚持下去,如果可以定制成插件自动添加注释结构那就更靠谱了,比如SourceInsight, Sublime Text等编辑器都有这样的功能,可以到我的博客中找到相应的配置方法。也可以根据JavaDoc的注释方式,进行注释,以便于以后对代码进行分析和测试,以及文档的编写工作。

你可能感兴趣的:(Windows程序设计基础)