#include
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevlnstance,
PSTR szCmdLine,int iCmdShow)
{
MessageBox(NULL,TEXT("Hello,Windows 98!"),TEXT("HelloMsg"),0);
return 0;
}
一. 头文件
几乎每一个使用C/C++编写的Windows程序在开头都会使用include引入"windows.h"头文件,WINDOWS.H是主要的含入文件,
它包含了其它Windows表头文件,这些表头文件的某些也包含了其它表头文件.这些表头文件中最重要的和最基本的是:
WINDEF.H 基本型态定义。
WINNT.H 支持Unicode的型态定义。
WINBASE.H Kernel函数。
WINUSER.H 使用者接口函数。
WINGDI.H 图形设备接口函数。
这些表头文件定义了Windows的所有数据型态、函数呼叫、数据结构和常数标识符,它们是Windows文件中的一个重要部分.
二.函数入口
一个C/C++程序都有一个程序入口(main函数),Windows程序的也有进入点:WinMain
hInstance:
为应用程序的实例句柄,唯一标示一个应用程序,比如说:有一个qq.c的文件,编译后变成了qq.exe。qq.exe.就是一个应用程序,而用hInstance唯一标识这个应用程序
hPrevInstance:
当有多个应用程序时,比如点击运行两次(f5),产生两个应用程序,则hPrevInstance表示先出现那
个应用程序的句柄,在32位系统下,永远为0
szCmdLine:
命令行参数
iCmdShow:窗口显示方式,可以是正常的或者是最大化地充满整个画面,或者是最小化显示在工作列中.
三.WINAPI解析
#define WINAPI __stdcall
该语句指定了一个调用约定,包括如何生成机器代码以在堆栈中放置函数调用的参数,许多windows函数调用声明为WINAPI
注意:#define CALLBACK __stdcall
CALLBACK也定义成__stdcall,但CALLBACK常用于回调函数,比如说窗口过程
例如:
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lParam)
{
........................
..........................
}
具体用WINAPI还是CALLBACK更加具体情况,方便记忆原则,比如说callback,看名次就知道是回调函数,使用WINAPI就没那么明显了