Win32平台:是采用32位码编写出的操作系统,比如windows98,windowsME,windowXP.
Win32 API即为Microsoft 32位平台的应用程序编程接口(Application Programming Interface)。所有在Win32平台上运行的应用程序都可以调用这些函数。
使用Win32 API,应用程序可以充分挖掘Windows的32位操作系统的潜力。 Mircrosoft的所有32位平台都支持统一的API,包括函数、结构、消息、宏及接口。使用 Win32 API不但可以开发出在各种平台上都能成功运行的应用程序,而且也可以充分利用每个平台特有的功能和属性。
SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。 SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows 平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口 API的一些文件,但也可能包括能与某种嵌入式系统通讯的复杂的硬件。一般的工具包括用于调试和其他用途的实用工具。SDK 还经常包括示例代码、支持性的技术注解或者其他的为基本参考资料澄清疑点的支持文档。
SDK 包含了使用 API 的必需资料,所以人们也常把仅使用 API 来编写 Windows 应用程序的开发方式叫做“SDK 编程”。而 API 和 SDK 是开发 Windows 应用程序所必需的东西,所以其它编程框架和类库都是建立在它们之上的,比如 VCL 和 MFC,虽然他们比起“SDK 编程”来有着更高的抽象度,但这丝毫不妨碍它们在需要的时候随时直接调用 API 函数 。
标准Win32 API函数可以分为以下几类:
窗口管理 窗口通用控制 Shell特性 图形设备接口 系统服务 国际特性 网络服务重要参考文档(从百度文库下载):第1章Win32API编程简介.pdf;WIN32 API函数大全.pdf
指针是一个32位的无符号变量。
必须是32位,并且这个规则也适合各种句柄,在Win32API中存在各种各样的句柄,这些句柄都是32位的,用户可以用32位无符号整型变量声明。
Win32提供的API接口的实现方式有两种:基于动态链接库和基于组件对象模型(COM)
API主要函数如下:
1、 API之网络资源函数
WNetAddConnection//创建同一个网络资源的永久性连接
WNetCancelConnection //结束一个网络连接
2、 API之消息函数
GetMessagePos//取得消息队列中上一条消息处理完毕时的鼠标指针的屏幕位置
PostMessage//将一条消息投递到指定窗口的消息队列
SendMessage//调用一个窗口的窗口函数,将一条消息发给那个窗口
3、 API之文件处理函数
CloseHandle()//关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
CopyFile//复制文件
CreateFile//打开和创建文件、管道、邮槽、通信服务、设备以及控制台
DeleteFile//删除指定文件
FindFirstFile//根据文件名查找文件
FindNextFile
lclose //关闭指定的文件
lcreat //创建一个文件
llseek //设置文件中进行读写的当前位置
LockFile //锁定文件的某一部分,使其不与其他应用程序共享
lopen //以二进制模式打开指定的文件
lread //将文件中的数据读入内存缓冲区
lwrite //将数据从内存缓冲区写入一个文件
OpenFile //这个函数能执行大量不同的文件操作
ReadFile //从文件中读出数据
WriteFile //将数据写入一个文件
4、 API之打印函数
AbortDoc //取消一份文档的打印
AddPrinter //在系统中添加一台新打印机
EnumJobs //枚举打印队列中的作业
OpenPrinter //打开指定的打印机,并获取打印机的句柄
5、 API之文本和字体函数
AddFontResource //在Windows系统中添加一种字体资源
CreateFont //用指定的属性创建一种逻辑字体
GetTextColor //判断当前字体颜色。通常也称为“前景色”
SetTextColor //设置当前文本颜色。
TextOut //文本绘图函数
6、 API之菜单函数
AppendMenu //在指定的菜单里添加一个菜单项
CreateMenu() //创建新菜单
GetMenu() //取得窗口中一个菜单的句柄
7、 API之位图、图标和光栅运算函数
BitBlt() //将一幅位图从一个设备场景复制到另一个
CopyImage() //复制位图、图标或指针,同时在复制过程中进行一些转换工作
CreateBitmap() //按照规定的格式创建一幅与设备有关的位图
CreateCursor() //创建一个鼠标指针
CreateIcon //创建一个图标
LoadBitmap //从指定的模块或应用程序实例中载入一幅位图
LoadIcon //从指定的模块或应用程序实例中载入一个图标
LoadImage //载入一个位图、图标或指针
SetDIBits() //将来自于设备无关位图的二进制位复制到一幅与设备有关的位图里
SetDIBitsToDevice() //将一幅与设备无关位图的全部或部分数据直接复制到一个设备
SetStretchBltMode() //指定StretchBlt和StretchDIBits函数的伸缩模式
StretchBlt() //将一幅位图从一个设备场景复制到另一个
StretchDIBits() //将一幅与设备无关位图的全部或部分数据直接复制到指定的设备场景
8、 API之绘图函数
Arc //画一个圆弧
CloseFigure //描绘到一个路径时,关闭当前打开的图形
CreateMetaFile //创建一个图元文件设备场景
CreatePen //用指定的样式、宽度和颜色创建一个画笔
CreateSolidBrush() //用纯色创建一个刷子
DeleteObject() //删除GDI对象,对象使用的所有系统资源都会被释放
Polyline() //用当前画笔描绘一系列线段
Rectangle //用当前画笔画一个圆角矩形,并用当前选定的刷子在其中填充
SelectObject() //为当前设备场景选择图形对象
SetBkColor() //为指定的设备场景设置背景颜色
SetBkMode() //指定阴影刷子、虚线画笔以及字符中的空隙的填充方式
SetPixel //在指定的设备场景中设置一个像素的RGB值
SetROP2 //设置指定设备场景的绘图模式。与vb的DrawMode属性完全一致
9、 API之设备场景函数
CreateDC //为专门设备创建设备场景
CreatePolygonRgn() //创建一个由一系列点围成的区域
CreateRectRgn() //创建一个矩形区域
DeleteDC() //删除专用设备场景或信息场景,释放所有相关窗口资源
DPtoLP //将点阵从设备坐标转换到专用设备场景逻辑坐标
GetDC //获取指定窗口的设备场景
OffsetRgn() //按指定偏移量平移指定区域
PaintRgn() //用当前刷子背景色填充指定区域
ReleaseDC() //释放由调用GetDC或GetWindowDC函数获取的指定设备场景
SaveDC //将指定设备场景状态保存到Windows设备场景堆栈
10、API之硬件与系统函数
Beep //用于生产简单的声音
GetCursor() //获取目前选择的鼠标指针的句柄
GetCursorPos() //获取鼠标指针的当前位置
11、API之进程和线程函数
CreateEvent //创建一个事件对象
CreateProcess //创建一个新进程(比如执行一个程序)
ExitProcess() //中止一个进程
12、API之控件与消息函数
AnyPopup() //判断屏幕上是否存在任何弹出式窗口
CascadeWindows() //以层叠方式排列窗口
CloseWindow() //最小化指定的窗口
DestroyWindow() //清除指定的窗口以及它的所有子窗口
GetParent //判断指定窗口的父窗口
GetWindow() //获得一个窗口的句柄,该窗口与某源窗口有特定的关系
GetWindowRect() //获得整个窗口的范围矩形,窗口的边框、标题栏、滚动条及菜单等都在这个矩形内
IsChild() //判断一个窗口是否为另一个窗口的子或隶属窗口
IsWindowUnicode() //判断一个窗口是否为Unicode窗口。这意味着长款为所有基于文本的消息都接受Unicode文字
SetActiveWindow() //激活指定窗口