![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Windows
文章平均质量分 63
拉普拉斯妖1228
这个作者很懒,什么都没留下…
展开
-
libcef在win10下的manifest问题
这是因为浏览器程序加载不到manifest文件,导致操作系统版本处理错误。原创 2023-12-01 14:34:26 · 127 阅读 · 0 评论 -
Windows中集成libcef(MD)
将Debug、Release、include、Resources以及刚刚编译的libcef_dll_wrapper中的库拷贝到需要使用的工程目录中,并配置好路径。原创 2023-12-01 14:22:25 · 118 阅读 · 0 评论 -
Perfmon监控Windows进程性能
Perfmon(Performance Monitor)是一款Windows自带的性能监控工具,提供了图表化的系统性能实时监视器、性能日志和警报管理。通过添加性能计数器(Performance Counter)可以实现对CPU、内存、网络、磁盘、进程等多类对象的上百个指标的监控。其中,性能日志可定义输出格式为二进制文件、文本文件、SQLSERVER记录等,以方便后续使用第三方工具进行分析。Perfmon支持选择性的监控感兴趣的数据收集器,指标范围广、粒度细,而且支持将监控数据持久化。...原创 2022-06-19 20:37:33 · 2446 阅读 · 0 评论 -
Windows下编译和使用websocketpp
编译安装BoostWebSocketpp依赖于Boost,因此在使用WebSocketpp前需要编译安装Boost。到 Boost C++ Libraries - Browse /boost-binaries at SourceForge.net 下载稳定版的进行编译。下载的压缩包解压后进入Boost文件夹中,运行bootstrap.bat脚本。脚本运行完成后会生成b2.exe,运行b2.exe就会开始编译,编译时间会比较长。。。默认编译动态库,需要静态库的执行命令:b2 stage --too原创 2022-03-27 13:40:04 · 3125 阅读 · 0 评论 -
解决QT程序异常中止,报错__acrt_first_block == header
在Windows下使用VS开发QT程序,如果使用了函数toStdString来将QString转换为std::string的时候,可能会发生崩溃,报错__acrt_first_block == header。这种崩溃会发生在vs项目的运行库设置为静态链接(/MT)时,如果运行库设置的是动态链接(/MD)则不会有问题。这个崩溃的根本原因是对象在析构时释放内存不正确。std::string是STL中定义的模板类,所以编译器在编译dll时会将std::string实例化,在编译exe时也会将其实例化。当设置.原创 2021-11-20 18:32:38 · 937 阅读 · 0 评论 -
如何解决VS中QT的ui文件双击无法打开
最近在VS2017中开发QT的程序。在打开一个已存在的工程后,双击里面的ui文件没有反应。而在新建的工程中,双击ui文件时却能打开Qt Designer。后来发现通过重新添加ui文件的默认打开方式可以解决。解决步骤如下:在VS工程的[解决方案资源管理器]中,右键点击ui文件,在下拉菜单中选择[打开方式],在弹出窗口中[移除]掉[Qt Designer(默认值)]。然后点击[添加]按钮,在弹出窗口的程序这一栏中添加你安装的designer.exe(例如:C:\Qt\Qt5.13.2\5.13.2\msv原创 2021-11-20 16:37:14 · 1826 阅读 · 0 评论 -
Windows多线程编程
前言熟练掌握Windows下的多线程编程,能够让我们编写出更规范多线程代码,避免不要的异常。Windows下的多线程编程非常复杂,但是了解一些常用的特性,已经能够满足我们普通多线程对性能及其他要求。进程与线程1. 进程的概念进程就是正在运行的程序。主要包括两部分:一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方。另一个是地址空间,它包含所有可执行模块或 DLL 模块的代码和数据。它还包含动态内存。2. 线程的概念线程就是描述进转载 2021-01-22 16:53:52 · 715 阅读 · 0 评论 -
《Windows核心编程》笔记(一)
字符及字符串处理UTF-16将每个字符编码为2个字节(或者说16位)。UTF-8将一些字符编码为1个字节,一些字符编码为2个字节,一些字符编码为3个字节,一些字符编码为4个字节。UTF-32将每个字符都编码为4个字节。C运行库中现有的字符串处理函数,在应用程序中包含StrSafe.h时,String.h也会包含进来。比如_tcscpy宏背后的那些函数,已标记为废弃不用。如果使用了这些函数,编...原创 2020-01-14 21:56:35 · 176 阅读 · 0 评论 -
Duilib中让弹出窗口整体能被拖动的两种方法
第一种方法:基础知识:鼠标在窗口内移动,点击或者释放时都会产生WM_NCHITTEST消息,响应函数OnNcHitTest会返回一个枚举值,系统会根据这个枚举值进行相应的处理。当返回值为HTCAPTION时,系统会认为此时鼠标位于标题栏上,因而当鼠标按下并移动时就会执行拖动操作。在Duilib中在设置caption高度就能能让用户拖动窗口,其实就是当鼠标按下时在OnNcHitTest消息...原创 2020-01-09 22:20:06 · 559 阅读 · 0 评论 -
Windows系统中owner-owned 关系和 parent-child关系
一、概念在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和parent-child关系。前者称之为拥有/被拥有关系,后者称...原创 2020-01-06 22:34:49 · 300 阅读 · 0 评论 -
ActiveX控件注册的几种方法
-----ActiveX控件是一个动 态链接库,是作为基于COM服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX控件的前身就是OLE控件。由于ActiveX控件与 开发平台无关,因此,在一种编程语言上开发的ActiveX控件可以无须作任何修改,即可在另一种编程语言中使用,其效果如同使用Windows通用控件 一样。如:在VC++中开发的ActiveX控件,不作任何修改即可应用...原创 2019-12-21 21:48:21 · 2458 阅读 · 0 评论 -
10分钟带你了解轻量级插件框架x3py
写在前面由于本人目前主要从事的是Windows客户端开发方面的工作,所以本文介绍x3py的侧重点也是从客户端程序开发者方面叙述的。本文主要参考整理自x3py的官方Wiki,修正了一些官方示例中的错误。有兴趣的同学可以直接阅读原文。设计目的x3py 作为一个轻量级的C++插件框架,面向C++开发人员,首要目标是能快速容易的开发出中小型的软件、软件以插件形式模块化设计。其插件既可灵活组合...原创 2019-11-11 21:28:51 · 2530 阅读 · 2 评论 -
基于Duilib的win32程序实现最小化到托盘
最近在学习使用Duilib,这个库实现PC程序的界面确实很方便。Duilib中的demo程序全是点击关闭按钮程序就关闭了,所以这里我实现了一个点击关闭按钮后程序最小化到托盘的效果。以及常规的,鼠标左键点击托盘里的程序图标后程序正常显示。右键点击后出现退出菜单,点击退出按钮后程序正常退出。下面是关键部分源码:包含头文件和自定义消息#include <ShellAPI.h>#d...原创 2019-10-01 18:04:22 · 474 阅读 · 0 评论 -
Windows下GDI编程注意事项
在Windows PC上编程,GDI是一个很重要的技术点。很多程序在运行一段时间后出现异常,导致程序崩溃,除了众所周知的内存泄露以外,GDI资源泄露也是一个很直接的原因。下面是我列出的一些注意事项。Create出来的GDI对象,一定要用DeleteObject来释放,释放顺序是先Create的后释放,后Create的先释放。这里的Create指的是以它为开头的GDI函数,比如,Create...原创 2019-09-21 17:44:06 · 190 阅读 · 0 评论 -
PC客户端软件升级方式简史
在windows8之前,微软的Windows平台一直没有提供一个想苹果的AppStore或者Linux的包管理这样的统一软件管理工具。所以Windows下的软件安装、升级、卸载的事情一般都是软件自己去负责。这样导致Windows下的软件安装、升级、卸载的方式五花八门,但总体上来说方法都大同小异。安装程序主要分两种,下载器的安装包和离线安装包,这个不赘述。今天重点聊一下升级,升级功能看似简单,但...原创 2019-10-07 17:02:01 · 501 阅读 · 0 评论