读这本书完全是被它的名气所吸引的,看了之后发现确实不负众望,是一本不可多得的好书。
这是一本讲述在windows环境下用C和API编程的书,习惯了各种RAD开发,看了本书以前很多不解的东西茅塞顿开。
第一章主要介绍了一些基础性的东西。
接触该书的先决条件是安装有Windows系统、了解C语言、安装有可进行Windows编程的开发环境。
Windows是支持抢占式多任务、多线程的图形操作系统。支持CUI(控制台用户接口)和GUI(图形用户接口)两种编程方式。所有基于GUI的Windows程序至少有一个窗口,支持鼠标和键盘控制,每一个时刻可以有多个Windows程序同时运行,互不冲突。
Windows运转的核心是一个被称作“动态连接”的概念。通过“动态连接”功能可调用Windows提供的系统函数即API,这些函数主要包含在Kernel.dll(包含内存管理、文件I/O、任务处理API函数)、User.dll(包含用户界面API函数)、GDI.dll(包含图形设备接口API函数)三个动态连接库中。
然后通过一个例子,作者正式拉开了了windows编程的序幕:
下面是基于控制台模式的典型代码:
#include
main()
{
printf(“hello,world!/n”);
}
下面是基于图形模式的典型代码:
#include
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,PSTR szCmdLine,int iCmdShow)
{
MessageBox(NULL,TEXT(“Hello,Windows 98!”),TEXT(“HelloMsg”),0);
return 0;
}
windows图形模式程序的入口点是WinMain,总是想这样出现:
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,PSTR szCmdLine,int iCmdShow)
WINAPI是一个调用约定,等价于__stdcall。
HINSTANCE是一种句柄类型,其值用以标识对象。第一个参数用以表示该程序实例;
第二参数现已废弃,总是NULL,我们不必理会;第三个参数为运行程序的命令行;第四个参数指出程序初始显示的方式。
编译此程序时,生成一个.OBJ文件,链接阶段,链接程序结合.OBJ文件和.LIB文件建立.EXE文件。通过在Project选项上选择Setting,然后单击link标签,可以看到导入库(import library)列表。
在Visual C++中,可以选择不同配置编译和链接程序,默认有Debug和Release两种配置。