第一章 开始
实际开发工作中,不管我们用什么语言和开发工具在Windows下进行软件开发,学习和使用WINDOWS自身提供的Windows application programming interfaces (APIs)进行编程是非常重要的,因为API给我们提供了一切,没有什么方法比直接使用API更万能的了。使用API是通过调用动态连接库(DLL)中的函数来实现的,Windows中啊、API主要有三个动态连接库Kernel,User,GDI。
Kernel:处理所有的由Windows内核处理的事务---内存管理,文件I/O和任务处理。
User:指用户界面,实现所有窗口逻辑。
GDI:是一个图形设备接口,允许程序在屏幕和打印机上显示文本和图形。
这三个动态连接库的DLL文件在Window2000的/Winnt/System32的目录下可以找到分别是:Kernel32.dll,User32.dll,Gdi32.dll。
目前在Windows中API函数的数量已经有几千个了,而且微软公司还在不断的更新,因此学习API编程首先是要了解基本的概念原理,然后学会运用微软公司提供的MSDN(MicroSoft Developer Network:微软开发者网络)寻找自己所需要的东西。这本书就是起到学习了解基本的概念原理的作用的。
本章提到了几个常用的基本概念,一定要记住:
1,API(Application Programming Interface):应用程序编程接口
2,GUI(Graphical User Interface):图形用户界面
3,WYSIWYC(What you see is what you get):所见即所得
4,GDI(Graphics Device Interface):图形设备接口
5,DLL(Dynamic Linking Library):动态连接库
书中举了一个例子可以初步体验一下Windows API编程,下面的代码可以弹出一个显示“Hello, Windows 2000!“的消息窗口:
#include <windows.h>
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hello, Windows 2000!"), TEXT ("HelloMsg"), 0) ;
return 0 ;
}
WinMain函数是Window程序运行的入口点。WinMain的第一个参数叫“实例句柄”,是用来唯一标识应用程序实例的一个数字。第二个参数现在已经不用,设成NULL即可。第三个参数是用于运行程序的命令行,在Csdn Library中指出szCmdLine得到的不是Unicode strings,如果要得到Unicode strings的命令行可以用GetCommandLine函数取得。第三的参数指出程序最初显示的方式。
WINAPI标识符的定义是:#define WINAPI __stdcall, __stdcall指Window调用函数的一种方式,也就是如何在堆中存取函数参数的方式。许多Windows Api函数调用声明为__stdcall方式,至于为什么我现在不得而知。
MessageBox函数可以显示一个消息窗口,实际上可以认为是一个对话框。函数的使用是比较简单的,注意第四个参数是可以用‘|’运算符把若干个常数组合起来控制消息窗口显示的按钮和图标。