入口点
首先,为了进行Windows编程包含一些头文件是必要的。要包含一个定义Windows程序的形式、结构体、常数和函数调用的头文件。
Windows程序一个主要的包含文件是windows.h。在这个头文件中包含了其它头文件。在Windows程序中必须包含这个头文件。
其次,Windows编程中重要的一点是没有main()函数,程序开始的地方是WinMain()函数。Windows程序的应用程序入口是WinMain()函数。
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
);
出于一些原因,这个函数的参数比较复杂。首先,注意函数名前的WINAPI。WINAPI在windef.h中的定义如下:
#define WINAPI __stdcall
__stdcall是Win32 API函数调用时的规则。几乎所有的Windows API函数都有WINAPI修饰。
第一个参数是被叫做实例句柄(instance handler)类型的参数。句柄(handler)是为了识别是什么而使用的数值。实例句柄是用于识别程序的句柄。在调用某些Win32 API时,要把它作为参数。
第二个参数是Win16的产物。Windows是能够同时启动同一个程序的多个实例运行的。在Win16中,同一应用程序的实例是共享内存的,要通过这个参数来让自身和其它实例来进行区别。但是Win32中这个实现是不同的,所以第二个参数总是为NULL。
第三个参数是命令行获得的参数。LPSTR这个类型,是Windows标准的字符串类型(在以后的章节中说明)。
第四个参数用来指定应用程序最初的显示方式。我们现在还不知道窗口的制作方法,所以这个参数在以后才详细说明。
这里,我们看一下一个最简单的程序:
#include
int WINAPI WinMain(
HINSTANCE hInstance ,
HINSTANCE hPrevInstance ,
LPSTR lpCmdLine ,
int nCmdShow )
{
return 0;
}
这个程序目前还什么也不做。但是对于理解WinMain()非常重要。
0 件のコメント:
コメントを投稿