- 博客(16)
- 收藏
- 关注
原创 windows编程 第12课 vs中的c++编码问题
vs常用的字符编码设置是多字节编码和UNICODE,如果设置使用UNICODE的话,会定义一个UNICODE的宏,windows很多的函数字符串参数都会使用宽字节字符(2个字节),如果多字节的话,会使用一种叫做ANSI的字符编码格式,ANSI是一种标准,在不同国家系统上的实现是不一样的,比如windows简体中文中的ANSI就是GB2312字符编码,简单可以理解为能用一字节的就用一字节,中文是两个字节。
2023-05-27 09:19:04
340
原创 windows编程 第11课 win32线程
错误代码分析:当线程A执行g_value++时,如果线程切换时间正好是在线程A将值保存到g_value之前,线程B继续执行g_value++,那么当线程A再次被切换回来之后,会将原来线程A保存的值保存到g_value上,线程B进行的加法操作被覆盖。事件和信号量都解决线程同步问题,但是信号量具有计数功能,可以对资源数量进行控制,比如限制http服务器的访问客户数量。操作系统将CPU的执行时间划分成时间片,依次根据时间片执行不同的线程。类似于事件,解决通知的相关问题。线程轮询:线程A->线程B-> 线程A。
2023-05-22 19:46:36
232
原创 windows编程 第10课 定时器消息
程序创建定时器,当达到时间间隔时,定时器会向程序发送一个WM_TIMER消息。定时器的精度是毫秒,但是。例如设置时间间隔为1000ms,但是会在非1000毫秒到达消息。lPARAM 定时器处理函数的指针。wPARAM 定时器ID。
2023-05-21 12:39:04
146
原创 windows编程 第9课 消息队列
程序消息队列-属于每一个程序(线程,通常是主线程)的消息队列。非队列消息-消息发送时,首先查找消息接收窗口的窗口处理函数,直接调用处理函数,完成消息。系统维护的消息队列。非队列消息:消息不进队列,消息的发送和获取,是直接调用消息的窗口处理完成。1. 当鼠标、键盘产生消息时,会将消息存放到系统消息队列。队列消息-消息发送后,首先放入队列,然后通过消息循环,从队列当中获取。2. 系统会根据存放的消息,找到对应程序的消息队列。队列消息:消息的发送和获取,都是通过消息队列完成。消息队列是用于存放消息的队列。
2023-05-21 12:23:38
149
原创 windows编程 第8课 消息的发送
由用户自己定义,满足用户自己的需求。由用户自己发出消息并响应处理。PostMessage 投递消息,消息发出后立刻返回,不等候消息执行结果。SendMessage 发送消息,会等候消息处理的结果 同步操作。自定义的消息自己发送自己处理。一般结论:系统消息只需要我们进行处理,很少发送(,又系统定义好的消息,可以在程序中直接使用。
2023-05-21 11:21:55
94
原创 windows编程 第6课 浅谈消息相关函数
GetMessage返回值非常的重要,直接影响程序的退出,只有收到WM_QUIT消息的时候才返回。WM_SYSCOMMAND 系统命令,比如最小化 最大化。WM_DESTROY 窗口销毁事件。WM_SIZE 窗口大小发生变化。将按键消息,翻译成字符消息,检查消息是否是。将消息派发到所属窗口的窗口处理函数上。WM_QUIT消息,并且退出码为0。值,否则其它情况均返回。
2023-05-21 10:23:04
97
原创 windows编程 第5课 消息处理
当系统通知窗口工作时,就采用消息的方式派发给窗口。消息的两个参数 (两个附带信息)分析消息分发函数 Dispatch(&msg)消息产生时的鼠标位置。消息的组成(windows平台下)
2023-05-20 22:30:19
75
原创 windows编程 第4课 注册窗口类
窗口类包含了窗口的各种参数信息的每个窗口都具有窗口类,基于窗口类创建窗口每个窗口类都具有一个名称,使用前必须注册到系统窗口的分类系统窗口类系统已经定义好的窗口类,所有应用程序都可以直接使用应用程序全局窗口类由用户自己定义,当前应用程序所有模块都可以使用应用程序局部窗口类由用户自己定义,当前应用程序中本模块可以使用系统窗口类不需要注册,直接使用窗口类即可。系统已经注册好了例如:按钮 BUTTON 编辑框 EDIT全局及局部窗口类。
2023-05-20 22:00:22
188
原创 windows编程 第3课 编码
如果vs选择字符集为UNICODE,则会定义一个UNICODE宏,则很多的参数字符串前都将需要添加L,所以vs要选择字符集为多字节字符集,不适用默认的UNICODE。wchar_t 实际上是unsigned short类型,定义时需要增加L,通知编译器按照双字节编译字符串,采用UNICODE编码。ASC 7位 128字符 (那个年代内存还是非常昂贵的)ASCII 8位 256字符 前128和ASC是一样的。wchar_t 每个字符占两个字节。char 每个字节占一个。TCHAR 数据类型。
2023-05-20 20:23:20
70
原创 windows编程 第二课 windows窗口
定义窗口处理函数(自定义,处理消息)注册窗口类(向操作系统写入一些数据)消息循环(获取/翻译/派发消息)创建窗口(内存中创建窗口)显示窗口(绘制窗口的图像)定义WinMain函数。一 窗口创建过程(7个基本步骤)
2023-05-20 19:14:02
172
原创 windows编程 第一课 基本小知识
(路径最新地址参考:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\bin\Hostx86\x64)1. 控制台程序Console DOS程序,本身没有窗口,通过windows dos窗口执行。1)静态库 扩展名lib,在编译链接程序时,将代码放入到执行文件中。3. 库程序 存放代码、数据的程序,执行文件可以从中取出代码执行和获取数据。控制台、窗口程序 exe。
2023-05-20 18:37:56
86
原创 cmake 3_macro
(ARGC) 参数书来嗯$(ARGV) 所有参数列表$(ARGV#) 取第#个参数 eg: ${ARGV0} 取第一个参数$(ARGN) 未在定义中命名的参数列表要点3:macro(宏定义)和Function的区别区别:1) Function的参数都是真实的变量,macro的参数都是字符串2)变量作用域不一样,function只在函数体内,但是macro是全局的。
2023-05-16 13:07:28
102
原创 c++ boost库使用-1 DEMO工程创建
基于windows平台,boost库exe方式安装。1. 配置BOOST_ROOT环境变量,指向boost安装根目录。2. 目录信息(boost官网复制)boost_1_77_0\ .................The “boost root directory” index.htm .........A copy of www.boost.org starts here boost\ .........................All Boost Header fi
2021-09-04 23:17:11
332
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人