序言&第一章

  1. #include<windows.h>
  2. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdshow)
  3. {
  4. MessageBox(NULL, TEXT("Hello, Windows 98!"), TEXT("HelloMsg"), 0);
  5. return 0;
  6. }

Windows程序的进入点是WinMain,总是以上方程序中的形式出现,该入口在WINBASE.H中有如下声明:

  1. int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd);
  • WinMain的第一个参数被称为执行实体代号,唯一标识当前运行程序。在多次运行同一程序时,便创建了该程序的多个执行实体。程序检查hPrevInstance参数即可确定自身的其他执行实体是否正在运行。在32位Windows中,该概念已被抛弃。传给WinMain的第二个参数总是NULL
  • 其中LOSTRPSTR均作为指向字串的指标。LP字首代表长指标,这是16位元Windows下的产物。
  • 第三个参数用于执行程序的命令列
  • 第四个参数指出程序最初显示的方式(正常或最大化铺满整个画面)
  • WinMain函数声明返回一个int数值,定义在WINDEF.H:
  1. #define WINAPI _stdcall