VC++中的WinMain()函数介绍

WinMain()函数 

WinMain()函数等价于控制台程序中的main()函数。该函数是执行开始的地方,也是为程序其余

部分执行基本初始化工作的地方。为了允许 Windows 传递数据,WinMain()函数有 个形参和一个

int类型的返回值,其原型如下: 

int WINAPI WinMain(HINSTANCE hInstance, 

HINSTANCE hPrevInstance, 

LPSTR lpCmdLine, 

int nCmdShow 

); 

在返回类型说明符 int 的后面,有一个函数说明符 WINAPIWINAPI 是一个 Windows 定义的

宏,将使系统以特定于Windows API函数的某种特殊方式处理函数名和实参。这种方式与C++通常

处理函数的方式不同。具体的细节是不重要的— —这只不过是Windows所要求的方式而已,因此只

需要将WINAPI宏名称放在由Windows调用的函数名前面即可。

Windows传递给WinMain()函数的4个参数包含着重要的数据: 

● hInstance 属于 HINSTANCE 类型,是指向某个实例的句柄—— 这里的实例是正在运行的程

序。句柄是标识某种对象(这里是应用程序的实例)的整数值。句柄的实际整数值是多少并不

重要。在任何给定时刻都可能有好几个程序在Windows下执行,这就使相同应用程序可能

有若干副本同时在活动,而这种情形需要识别出来。因此,hInstance 句柄标识某个特定的

副本。如果启动某个程序的多个副本,则每个副本都有自己独特的hInstance 值。正如我们

很快就将看到的那样,句柄还用来标识各种其他事物。 

● hPrevInstance是从16位版本的Windows操作系统继承下来的, 我们可以放心地对它置之不

理。在当前版本的Windows中,该参数始终为空。 

● lpCmdLine是指向某个字符串的指针, 该字符串包含启动程序的命令行字符。 该指针允许挑

出可能在命令行中出现的任何参数值。LPSTR 类型是另一种 Windows 类型,用来指定 32

(long)的字符串指针,或者当以 64 位模式编译时,则用来指定 64 位的字符串指针。

WinMain()的另一个版本接收LPWSTR,用于使用Unicode。 

● nCmdShow 决定着被创建窗口的外观。窗口可以正常显示,也可以最小化显示;例如,程

序的快捷方式可能指定该程序在启动时应该最小化显示。该参数可以是一组固定值之一,

这些值是由像SW_SHOWNORMALSW_SHOWMINNOACTIVE这样的一些符号常量定

义的。此类定义窗口显示方式的常量还有 个,它们都以 SW_开始。通常不需要检查

nCmdShow的值,而是直接将其传递给负责显示应用程序窗口的Windows API函数。 

 

 

程序中的WinMain()函数需要做以下4件事情: 

●  告诉Windows该程序需要的窗口种类 

●  创建程序窗口 

●  初始化程序窗口 

●  检索属于该程序的Windows消息 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值