WinMain()函数

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

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

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

int WINAPI WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow

);

在返回类型说明符 int 的后面,有一个函数说明符 WINAPI。WINAPI 是一个 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_SHOWNORMAL和SW_SHOWMINNOACTIVE这样的一些符号常量定

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

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

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

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

●  创建程序窗口

●  初始化程序窗口

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

VC++中的WinMain()函数介绍相关推荐

  1. Numpy中np.mashgri() 函数介绍及2种应用场景

    @[toc](Numpy中np.mashgri() 函数介绍及2种应用场景 文章目录:) 近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法. 但总觉得印象不深刻,不 ...

  2. java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍

    java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...

  3. php spl函数,PHP SPL标准库中的常用函数介绍

    这篇文章主要介绍了PHP SPL标准库中的常用函数介绍,本文着重讲解了spl_autoload_extensions().spl_autoload_register().spl_autoload()三 ...

  4. vba 云服务器,EXCEL服务器中VBA接口函数介绍

    EXCEL服务器中VBA接口函数介绍 日期:2017-11-27 14:40  |  分类:最新资讯  |  人气: EXCEL服务器中VBA接口函数 SaveReport 作用:保存报表模板或者报表 ...

  5. Python中numpy.power()函数介绍

    Python中numpy.power()函数介绍 power(x, y) 函数,计算 x 的 y 次方. 示例: x 和 y 为单个数字: import numpy as npprint(np.pow ...

  6. 关于VC中的时间函数讨论

    关于在VC中时间函数的事业问题在论坛有不少的帖子讨论,下面结合讨论结果和相关的知识做个总结. 先从一个如何在程序中延时的问题谈起,延时的方法有 方法一: 使用sleep函数,它的最小单位是1ms,如延 ...

  7. SQL中的聚合函数介绍

    什么是聚合函数(aggregate function)? 聚合函数对一组值执行计算并返回单一的值. 聚合函数有什么特点? 除了 COUNT 以外,聚合函数忽略空值. 聚合函数经常与 SELECT 语句 ...

  8. SQL中的ISNULL函数介绍

    SQL中有多种多样的函数,下面将为您介绍SQL中的ISNULL函数,包括其语法.注释.返回类型等,供您参考,希望对您学习SQL能够有所帮助. ISNULL 使用指定的替换值替换 NULL. 语法 IS ...

  9. MATLAB中的mvnrnd函数介绍

    mvnrnd函数介绍 mvnrnd函数可以用于生成不同类别模式的数据,数据要服从正态分布(高斯分布). 使用matlab来实现的代码如下: matlab实现代码如下: mul = [1 2]; SIG ...

最新文章

  1. attention seq2seq transformer bert 学习总结 _20201107
  2. TVM部署预定义模型
  3. 计算机系统验证课件,回顾性验证及再验证简介(ppt 42页)
  4. 人脸识别进校园引争议 “人工智能+教育”应审慎
  5. centos7安装python3.7.4_阿里云centos7.4安装python3.7.0
  6. Hadoop权威指南 _02大体目录
  7. ios中的视频采集及参数设置和相机操作
  8. 国科大生命科学学院华大专项-孙海汐导师课题组专访:去伪存真的过程一定不是一帆风顺的...
  9. Visio中图进行任意区域进行颜色填充
  10. 拇指接龙游戏从WIN32向Xcode 4.5移植过程问题记录
  11. Java的内存机制(转)
  12. OpenCV案例(一):切边
  13. 电脑有电流声怎么解决_为什么音箱有电流声?电脑音箱电流声怎么消除
  14. QC3.0手机充电器直接输出12V电压,自制诱骗线
  15. 什么是VBA编程语言?
  16. 六根清净怎么讲 ---圣严法师
  17. 聚合数据api的使用
  18. 脚本编写一个10秒的倒计时和1分10秒的倒计时
  19. pandas批量处理体育成绩
  20. Unity 微信小游戏转回WEBGL发布设置

热门文章

  1. 黑苹果驱动板载intel蓝牙
  2. 60秒的秒表c语言程序,99秒表c程序
  3. 2018吉林CCPC(HDU6555)A.The Fool
  4. (信贷风控八)行为评分卡模型(B卡)的介绍
  5. 你的能力是更适合做微商还是淘宝
  6. Android AIDL 传递对象(Parceable),深度解读Netty
  7. 一心多用多线程-阻塞队列(5)-CountDownLatch
  8. QtAV视频播放器的介绍、编译以及简单使用
  9. android java 线程通信_Android 线程间通信
  10. 基于fmincon函数的最优化计算