Windows程序设计第02章Win32编程基础知识文档格式.docx

上传人:b****5 文档编号:15851690 上传时间:2022-11-16 格式:DOCX 页数:13 大小:576.74KB
下载 相关 举报
Windows程序设计第02章Win32编程基础知识文档格式.docx_第1页
第1页 / 共13页
Windows程序设计第02章Win32编程基础知识文档格式.docx_第2页
第2页 / 共13页
Windows程序设计第02章Win32编程基础知识文档格式.docx_第3页
第3页 / 共13页
Windows程序设计第02章Win32编程基础知识文档格式.docx_第4页
第4页 / 共13页
Windows程序设计第02章Win32编程基础知识文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Windows程序设计第02章Win32编程基础知识文档格式.docx

《Windows程序设计第02章Win32编程基础知识文档格式.docx》由会员分享,可在线阅读,更多相关《Windows程序设计第02章Win32编程基础知识文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

Windows程序设计第02章Win32编程基础知识文档格式.docx

\n"

);

return0;

}

在main函数之前的“int”,是主函数的返回值类型,因为有它,所以在主函数的函数体内部的最后,要加入“return0;

”,需要将函数的返回值返还回去。

intargc:

argc是命令行总的参数个数,即主函数带有多少个参数。

char*argv[]:

argv是指针数组,其中argv[]是argc个参数(参数内容),其中第0个参数是程序的全名,后面的参数是命令行后面跟的用户输入的参数。

现在以DOS命令“dir”为例,假设输入:

“dir 

/w 

/p 

c:

\Windows”,如图2.1所示。

图2.1cmd命令行

其各个参数的含义解释如下:

argc 

4

argv[0] 

dir

argv[1] 

/w

argv[2] 

/p

argv[3] 

\Windows

如果想编写带有命令行参数的程序,通过对argc与argv的配合即可实现。

当然也可以通过参数的内容来实现不能功能的加载。

2.2Win32入口函数

C语言有入口函数,当然Win32编程也有入口函数,虽然它们的写法有所不同,但同为入口函数,基本功能是一样的。

不一样的是Win32的入口函数相对来说更为复杂,它为窗口应用程序提供相应的参数。

为了让大家更好的了解Win32入口函数的参数,先来了解一下C语言的一些参数,表2.1描述了常用的数据类型。

表2.1C/C++语言基本数据类型

类型

说明

字节数

二进制位

值域

char

字符型

1

8

-128~127

signedchar

有符号字符类型

unsignedchar

无符号字符类型

0~255

int

整型

2

16

-32768~32767

signedint

有符号整型

unsignedint

无符号整型

0~65535

shortint

短整型

signedshortint

有符号短整型

unsignedshortint

无符号短整型

long

长整型

32

-231~(231-1)

signedlong

有符号长整型

unsignedlong

无符号长整型

0~(232-1)

float

浮点型

7位有效位数

double

双精度型

64

15位有效位数

char*

字符指针

-

constchar*

字符指针常量

在表2.1中,需要注意的是“int”类型,在turboc中,字节数是2,二进制位为16,而在本书中使用的MicrosoftVisualC++6.0中,字节数是4,二进制位32。

如果感兴趣,可以使用“sizeof(int)”语句来验证。

如果之前只做过C或C++程序的开发,那接下来的Win32的数据类型会感觉格格不入,还好在对C/C++语言的基本数据类型进行了回顾,接下来作个简单的对比,这样能更好的理解数据类型,如表2.2所示,描述了C语言与Win32常用的数据类型的对比。

表2.2C/Win32常用数据类型对比

C数据类型

Win32数据类型

LPSTR,PSTR

LPCSTR,PCSTR

void

VOID

void*

LPVOID

Win32的数据类型众多,有上百个,记忆时可以使用一些技巧,切勿死记硬背,拿“LPCSTR、PCSTR”为例:

“LP”与“P”代表同一含义,即指针;

“C”代表“const”;

“STR”则代表字符串。

合起来的意思是常量字符串指针。

C语言与Win32的数据类型已经做了简单介绍,接下来该谈一谈Win32的入口函数以及参数的作用,其标准函数原型如下:

#include<

Windows.h>

intAPIENTRYWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPSTRlpCmdLine,

intnCmdShow)

MessageBox(NULL,"

显示的内容"

"

标题"

MB_OK);

在编写Windows程序时,需要包含头文件“Windows.h”,正如第一行所示。

它包含了其他Windows头文件,这些头文件的某些头文件,又包含了其他头文件。

在这些头文件中最重要的是:

WINDEF.H基本型态定义;

WINNT.H支援Unicode的型态定义;

WINBASE.HKernel函数;

WINUSER.H用户界面函数;

WINGDI.H图形界面函数;

这些头文件涵盖了Win32编程所需要的所有功能及方法,它们是Windows文件中的一个重要组成部分。

入口函数中的“intAPIENTRY”,其中“int”为函数的返回值类型,“APIENTRY”为函数标识,它本身是通过宏来进行定义的,如图2.2所示,为“WINDEF.H”头文件中所定义的宏的原型。

图2.2APIENTRY定义

“APIENTRY”是由“WINAPI”定义而来,而“WINAPI”则是由“__stdcall”定义。

“__stdcall”是调用约定,保护如何处理参数压入栈的顺序,谁负责清理内存等。

在这里只知道写法即可,不用深究其意。

一定要注意的是,Win32的入口函数是“WinMain”而不是“main”,前面的“Win”代表的含义是“Windows”。

“HINSTANCE”,根据MSDN的翻译,为进程的实例句柄,它也为数据类型中的一种,句柄类型。

作用是加载进程映像的基本地址,在程序中,唯一标识进程。

句柄则是整个Win32编程的基础,一个句柄是指,使用的一个唯一的整数值,是指一个四字节的数值,用于标志应用程序中的不同对象的实例,例如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。

应用程序能够通过句柄访问相应的对象的信息,可以这样说,句柄就像每位同学的学号一样,唯一标识着一个窗口,需要注意的是,句柄不是一个指针,程序不能利用它来直接阅读文件中的信息。

接下来介绍一下WinMain函数各个参数的含义:

参数HINSTANCEhInstance,进程的实例句柄,在本程序中,唯一标识进程;

参数HINSTANCEhPrevInstance,指向应用程序的前一个进程句柄,在32操作系统该参数为NULL,该参数仅仅被用于16位操作系统,现已经不被使用;

参数LPSTRlpCmdLine,命令行缓冲区,不包括程序的名字,回想一下“char*argv[]”的作用,如果输入“dir/w/pc:

\Windows”,则lpCmdLine的值为“/w/pc:

\Windows”;

参数intnCmdShow,窗口的显示状态,该参数可以是下表值之一。

表2.3窗口显示状态

标识

描述

SW_HIDE

隐藏窗口并且激活另外一个窗口。

SW_MINIMIZE

最小化指定的窗口,并且激活在系统表中的顶层窗口。

SW_RESTORE

激活并显示窗口。

如果窗口已经最小化或最大化,系统将以恢复到原来的尺寸和位置显示窗口(与SW_SHOWNORMAL相同)。

SW_SHOW

激活一个窗口并以原来的尺寸和位置显示窗口。

SW_SHOWMAXIMIZED

激活窗口并且将其最大化。

SW_SHOWMINIMIZED

激活窗口并将其最小化(以图标显示)。

SW_SHOWMINNOACTIVE

将一个窗口显示为图标。

激活窗口维持活动状态。

SW_SHOWNA

以窗口的当前状态显示窗口。

激活窗口保持活动状态。

SW_SHOWNOACTIVATE

以窗口的最近一次的尺寸和位置显示窗口。

激活窗口维持激活状态。

SW_SHOWNORMAL

如果窗口最大化或最小化,系统将其恢复到原来的尺寸和位置(与SW_RESTORE相同)。

2.3WindowsAPI简介

API(ApplicationProgrammingInterface,应用程序编程接口),是操作系统提供给开发者的应用程序编程接口。

用户使用该接口可以调动操作系统资源,而又无需访问源码,或理解内部工作机制的细节,从而实现自己的应用程序的功能。

简单理解,API即为函数,是由操作系统提供,开发者不需要知道函数的具体实现方法,只要了解其功能及使用方法即可。

由于API是操作系统提供,所以它有一个特性,即编译环境的无关性,如果使用VB、Delphi等期编译环境,也可以同样调用相同的API功能,唯一不同的是各种编程语言上语法的不同。

API在计算机系统中的位置如图2.3所示。

图2.3API用户接口

事实上,WindowsAPI是在安装完操作系统之后,就已经存在了,它是以DLL文件的形式存在,存在“C:

\WINDOWS\system32”下,在这个目录下可以看到很多很多的DLL文件,而这些文件就是提供函数接口的地方。

DLL文件的操作与说明会在后面的章节介绍,这里就不过多说明。

常用的Win32函数库所需要的DLL文件如下:

GDI32.DLL:

屏幕显示及打印功能的函数集;

USER32.DLL:

鼠标、键盘、通信端口、声音、时钟功能的函数集;

KERNEL32.DLL:

文件及内存管理(核心部分)功能的函数集;

MPR.DLL:

Windows32网络接口库;

ADVAPI32.DLL:

Windows32、ADVAPI32核心部件。

类库和控件都是构架在WindowsAPI函数基础之上的,是封装了的API函数的集合。

它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WIN32应用程序开发的过程。

有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。

2.4开发

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1