Welcome

首页 / 软件开发 / VB.NET / API入门系列之一 -那‘烦人’的Windows数据类型

API入门系列之一 -那‘烦人’的Windows数据类型2010-01-04 cnblogs beyondcodeHello Everybody This is beyondcode

大家好 再次自我介绍一下 我是beyondcode, 这次心 血来潮, 计划着做一系列关于Windows API 编程的教程,用于帮助一些在Windows API编程上有疑惑的, 纳闷的,迷惑的新手朋友们。

先解释一些术语或名词吧

SDK是Software Development Kit的简写,也就是软件开发包的意思,其中就包含了我们写程序要用 到的一些头文件,库,工具,帮助文档之类的。

Windows API编程是指调用Windows的接口函数来进行程序的编写,例如MessageBox就是一个API函数 或者说接口函数。怎么说都可以,自己理解就行。如果你连这个都不太懂,我想也不会搜到这篇文章了 吧~·

为什么做这个系列教程呢,请听我一一道来先,最近遇到一些事一些人,让我真的 感觉在这方面的引导入门文章真的很是匮乏,加上Windows SDK头文件中那些复杂,庞大,"烦人 "的宏定义与数据类型定义,对于一个新手来说(我所说的新手不单只刚接触编程的,还特指那些在 其他语言领域有比较高造诣的朋友) 一个纯SDK写的helloworld程序都算是一个有些困难和挑战的任务了 吧。 本着帮助别人,高兴自己的原则,我有了这个打算,当然对自己以前所学,所经历做一次回忆,也 是这次计划的一部分。

声明一下,本系列教程是面向广大初次接触WIN32 SDK程序编写的新手朋 友们的,如果你是高手,一笑而过吧~当然,除了一笑而过,也多谢你们提出指正文章中的错误,以免我 误人子弟啊~~谢谢

Ok 废话不多说,进入正题,今天第一篇,讲什么? 对于一个新人来说, 第一次接触SDK编程或者说API编程,什么最迷惑你们的,我们讲它,我觉得Windows SDK中那"烦人 "的数据类型定义和宏定义应该算这个很角色吧。。

其实微软的本意也是善良的,为了减轻 程序员的负担,和为了编程的方便,才花了那么多心思与精力定义出了这么一大套数据类型与宏定义, 这也是我为什么在之前说它烦人都是加上引号的原因,因为他不是真的烦人,熟练了,你不但不觉得它 烦,反而离不开它了,呵呵,日久深情也就是这么来的。

呵呵 先看几个数据类型定义吧

typedef float FLOAT;

typedef long LONG;

typedef short SHORT

typedef int INT;

typedef char CHAR;

float, long, short, int, char 这几个数据类型都是大家熟悉的C/C++的数据类型吧,微软将他们重新定义了一下,很简单,就是改变名 字为大写了,这样做的目的大概是微软为了编码的方便吧,输入法大小写都不用切换了,多人性化呀 呵 呵。。

再看几个数据类型定义的例子

typedef unsigned int UINT;

typedef unsigned int UINT32;

typedef signed int INT32;

typedef unsigned long DWORD;

typedef unsigned short WORD;

这些数据类型的定义就稍微有实质性作用一些了 ,注意观察,他们都比较短了,不用写那么长了,而且也还比较直观,如果我要定义一个无符号整形, 我就不用写 unsigned int a;

这么长了,只需UINT a; 多简单, 多明了,所以我说其实不烦人 吧。

其中DWORD 算是SDK程序中可以经常看见的一个数据类型了,经常被使用,很多新手也就不 明白,这是什么数据类型啊,现在看到了吧,其实就是无符号长整形unsigned long,给他取了个外号而 已··没什么技术含量,所以不用怕,程序中究竟是写unsigned long 还是DWORD都看你自 己心情,因为他们都代表同一种数据类型。