C win32基础学习(二)

news/2024/4/17 2:39:52/文章来源:https://blog.csdn.net/m0_52021450/article/details/129216349

上一篇我们已经介绍了关于窗口程序的一些基本知识。从本篇开始我们将正式进入C win32的学习中去。

正文

窗口创建过程

  • 定义WinMain函数

  • 定义窗口处理函数(自定义,处理消息)

  • 注册窗口类(向操作系统写入一些数据)

  • 创建窗口(内存中创建窗口)

  • 显示窗口(绘制窗口的图像)

  • 消息循环(获取/翻译/派发消息)

  • 消息处理

上一篇文章我们只是简单的了解了一下WinMain函数的写法。这次我们将深入的了解此函数

WinMain函数

在了解之前我们需要知道的是:什么是入口函数,它有什么作用?

入口函数:就是程序运行时候最开始调用的函数,具体来说,它指定编译器(或者其他类似工具)如何开始编译一个程序,因此用户现在可以在编译时运行一些预处理和初始化步骤。即使没有入口函数,一个项目也可以被编译器编译,但是没有入口函数,也不能使编译器进行任何必要的预处理和初始化步骤,并且编译后可能会有一些问题。

int WINAPI WinMain(_In_     HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInstance,_In_     LPSTR     lpCmdLine,_In_     int       nShowCmd);
  • HINSTANCE hinstance, 表示应用程序当前的实例句柄,在windows程序中句柄无非就是一个数值

  • HINSTANCE hPrevInstance,表示应用程序上一个实例的句柄。

  • LPSTR lpCmdLine,指向应用程序命令行参数字符串的指针,不包括可执行文件名。

  • int nCmdShow,指定应用程序最初如何显示,例如在任务栏上正常显示、最大化到全屏显示或最小化显示。

在上面我们可以看到WinMain 前有一个WINAPI ,那么这个WINAPI 是什么意思呢,接下来就介绍一下。

WINAPI 头文件中的定义如下:

#define CALLBACK    __stdcall
#define WINAPI      __stdcall
#define APIPRIVATE  __stdcall
#define PASCAL      __stdcall
#define APIENTRY    WINAPI

可以看出上面定义的宏 都指向了 _stdcall ,那么无问题来了什么是_stdcall

  • 是一种函数调用约定,也称为标准调用约定。
  • 函数调用约定描述函数参数的传递方式和由谁来平衡堆栈
  • 在程序中调用一个函数时,函数参数的传递是通过堆栈进行的,也就是说调用者把要传递给函数的参数压入堆栈,函数在执行过程中从堆栈中取出相应的参数使用。

结尾

在这里我们简单的介绍了什么是WinMain函数,之后的文章我们会依次介绍窗口创建过程的其他步骤。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74105.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FreeRTOS的Delay函数

两个Delay函数有两个延时函数vTaskDelay:至少等待指定个数的Tick Interrupt才能变为就绪态xTaskDelayUtil:等待到指定的绝对时刻,才能变为就绪态个人感觉这两个延时函数就是,比如一个我等3个小时,一个是我等到下午3点的…

回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测

回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测 目录回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测效果一览基本介绍模型搭建程序设计参考资料效果一览 基本介绍 基于贝叶斯优化卷积双向长短期记忆网络(…

会声会影2023专业版视频处理制作软件功能详细介绍

会声会影是一款专业的视频处理和制作软件,也是目前影楼制作结婚和一般视频特效制作的必备软件,他是一款专为个人及家庭所设计的数码影片编辑软件,可将数 字或模拟摄像机所拍下来的如成长写真、国外旅游、个人MTV、生日派对、毕业典礼等精彩生…

惠普m1136打印机驱动程序安装教程

惠普m113打印机是一款功能强大的多功能打印机,它能够打印、复印、扫描和传真等。如果你要使用这款打印机,你需要下载并安装驱动程序,以确保它能够在你的计算机上正常工作。在本文中,我们将介绍如何下载和安装惠普m1136打印机驱动程…

loki 日志管理的安装部署使用

loki介绍 Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。 不对日志进行…

STM32——窗口看门狗

什么是窗口看门狗? 窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测 程序运行时间的场合。 窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器。 产生复位条件: 当递减…

关于死锁的一些基本知识

目录 死锁是什么? 死锁的三种经典情况 1.一个线程,一把锁,连续加锁两次,如果锁是不可重入锁就会死锁。 不可重入锁与可重入锁: 2.两个线程两把锁,t1和t2各自针对于锁A和锁B加锁,再尝试获取…

MongoDB-怎么将csv数据导入mongodb数据库的某张表中

背景介绍 背景就是开发突然问我能不能往数据库导数据,然后只需要某几列的数据。我的第一想法是:用python脚本读取csv文件,将内容拼接成json格式的文本,然后用脚本的方式导入。后来发现我用的GUI工具就可以直接导入数据到数据库中。…

OSS存储使用之centOS系统ossfs挂载

以CentOS7系统为例 下载CentOS系统支持的ossfs工具的版本,以下载CentOS 7.0 (x64)版本为例,可以通过wget命令进行安装包的下载 wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm 也可以通过yum命令来进行安装包的下载 sud…

操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权

系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!! MSF和CS绕过UAC提权 CS绕过UAC提权 拿到一个普通管理员的SHELL,在CS中没有*号代表有…

排序基础之选择排序法

目录 前言 一、什么是选择排序 二、实现选择排序 三、使用泛型扩展 四、使用自定义类型测试 前言 今天天气不错,这么好的天气不干点啥实在是有点可惜了,于是乎,拿出键盘撸一把! 来,今天来学习一下排序算法中的选…

死磕Spring,什么是SPI机制,对SpringBoot自动装配有什么帮助

文章目录如果没时间看的话,在这里直接看总结一、Java SPI的概念和术语二、看看Java SPI是如何诞生的三、Java SPI应该如何应用四、从0开始,手撸一个SPI的应用实例五、SpringBoot自动装配六、Spring SPI机制与Spring Factories机制做对比七、这里是给我自…

你在公司混的差,可能和组织架构有关!

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,非公众号转载保留此声明。如果你接触过公司的面试工作,一定见过很多来自大公司的渣渣。这些人的薪资和职位,比你高出很多&#xff0…

利用steam搬砖信息差赚钱,单账号200+,小白也能轻松上手!

现在很多人在做互联网而且也赚到钱了,但还是有很多人赚不到钱,这是为什么? 这里我不得不说一个词叫做赛道,也就是选择,选择大于努力,项目本身大于一切,90%的人都觉得直播带货赚钱,但…

MySQL语法之DQL数据查询语言(数据库的查询)

Java知识点总结:想看的可以从这里进入 目录2.5.4、DQL数据查询1、简单查询2、模糊查询3、连表查询4、自连接5、UNION6、排序7、分页查询8、分组查询9、子查询in10、子查询EXISTS2.5.4、DQL数据查询 数据库的基本功能,对数据进行查询。关键字select&…

Python3+Selenium3自动化测试

此前对网页内容进行元素定位的操作,接下来就可以对已经定位的元素进行操作了,一般情况下定位好元素后通过IDE的提示就可以了解到有哪些方法 #coding utf-8 import time from selenium import webdriver from selenium.webdriver.common.by import By dr…

关于永中Office(永中办公软件)不认Windows系统安装的字体的解决办法

一位网友的电脑最近安装了永中Office软件,在使用过程中发现无法使用方正小标宋简体、仿宋GB2312等字体,这些字体在之前所用的微软Office中可以正常使用。他根据网上查到的一些的资料,将这些字体文件复制到C:\Program Files\Yozosoft\Yozo_Off…

【AcWing-Python-786】第k个数/快速选择算法

题目:https://www.acwing.com/problem/content/788/对应视频讲解:https://www.acwing.com/video/228/题目描述回顾快排【AcWing-Python-785】快速排序 - CSDN博客(一)步骤找到分界点x:可以是区间最左端点、区间最右端点…

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲天然蓄水库 or 天然蓄水池题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明示例三输入输出说明Python 代码实现算法思路华为OD机试300题大纲 参加华为

蓝桥2.24训练

1&#xff0c;奇怪的函数 P2759 奇怪的函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1这道题有两个点&#xff0c;一个是求数的位数 2&#xff0c;用整数二分求出的位数与n比较 #include <bits/stdc.h> using namespace std; typedef long long ll; ll n; int ma…