Windows程序设计--起步

第一个windows程序:
首先建立一个win32 application。对于二者的区别可以参见博客《Hey,别搞错了Win32项目和Win32控制台程序》

main函数我们都很熟悉,而且许多程序员更加倾向于main函数也应该有个明确的返回值。
windows程序的winmain函数与main函数有相同的组成部分,即include语句、程序入口、函数调用、以及return语句。

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

WinMain函数的返回值被定义为int。
WINDEF.H中以下语句来定义WINAPI标识符:

#define WINAPI _stdcall

这条语句规定了一种函数调用约定,表示如何生成在堆栈中放置函数调用参数的机器代码。绝大多数windows函数调用都定义成WINAPI。

WinMain的第一个参数叫做实例句柄。在windows程序中,句柄无非就是一个数值,程序里用它来标识某些东西。

早期的windows版本中,当多路并发运行同一个程序时,就需要为这个程序创建多个实例。同一程序的所有实例都共享代码以及只读存储。一个程序可以通过查看hPrevInstance参数从而知道是否有它的其他实例在运行。但是在32位的windows系统中,这一概念已经不再采用。因此,

WinMain的第二个参数通常定义为NULL。

WinMain的第三个参数用来运行程序的命令行

WinMain的第四个参数用来指明程序最初如何显示:或正常显示,或最大化到全屏。

MessageBox函数
MessageBox函数是用来显示短信息的。尽管形式比较单一,MessageBox所显示的小小窗口实际上也是一个对话框。

MessageBox的第一个参数通常是一个窗口句柄。
MessageBox的第二个参数就是要将在信息框里出现的文本字符串。
MessageBox的第三个参数是将要在标题栏上显示的文本字符串。
MessageBox的第四个参数是以MB_打头的一些常量的组合。

你可能感兴趣的:(windows)