自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

r5014的博客[Eosin_Sky]

和大家分享工作中遇到的一些问题和总结

  • 博客(81)
  • 资源 (3)
  • 收藏
  • 关注

原创 Qt实现SAX2方式解析XML文件(简单有效、老少皆宜,200MB大小4-7层的XML解析只需要30s)

Qt解析XML文件,我这个案例可以说非常实用了,而且解说相当于是手把手教了,不管是老手还是新手都能轻易掌握的。

2018-02-09 17:47:16 788 4

原创 C++检测字符串中有效的括号个数

【代码】C++检测字符串中有效的括号个数。

2023-12-05 15:30:00 111

转载 VisualAssistX 安装失败 安装异常解决

真的是无语,再安装,就提示已经安装好了,但是进vs啥都没有。这个时候,立即打开Eeverting,搜索*.vsix。

2023-05-09 15:45:33 941 3

原创 windows下C++实现Unicode和Utf8编码的互转

不管什么项目,或多或少都会遇到那么一点点转码的问题,本片就提供两个实现Unicode和UTF8互转的函数。

2022-06-14 15:14:51 3327

原创 windows下C++实现Unicode和ASCII编码的互转

UNICODE和ASCII的互相转换

2022-06-13 17:06:06 1997

原创 Qt避免多次connect操作之后一个信号触发多个槽

偶尔会遇到一个对象的在某些情况下会被多次connect的情况,本文记录了如何顺利处理。

2022-06-07 11:25:31 682

原创 Qt5.5.1通过设置环境变量来实现qt中ui的缩放(适配HIDPI)

改变qt的缩放倍率,可在QApplication未创建的时候调用操作:QString strCurrentDpi = 1.5f;qputenv("QT_DEVICE_PIXEL_RATIO", strCurrentDpi.toLatin1());来对qt的ui进行全局缩放。

2021-10-26 17:57:17 738

原创 Win32程序获取屏幕的HDPI放大倍数

目前高分辨率的显示器越来越高,我们不得不让程序适配系统的HDPI,其中需要知道系统当前的缩放倍率。可以使用一下函数获取:double GetDeviceDpiFactor(){ double dDpi = 1; // Get desktop dc HDC desktopDc = ::GetDC(NULL); // Get native resolution float horizontalDPI = ::GetDeviceCaps(desktopDc, LOG

2021-10-26 17:53:46 898

原创 处理(定制)CHtmlView的弹出页面

在使用CHtmlView的时候会遇到这样的问题,点击某些页面的弹出链接之后CHtmlView会使用默认的浏览器来弹出该链接的页面。如果想改成用我们自己设计的浏览器或者是窗口来弹出该怎么做呢?已下是解决方案,class CDIYAD: public CHtmlView{private: virtual void OnNewWindow2( LPDISPATCH* ppDisp, BOOL* Cancel); //重载OnNewWindow2来自定义弹窗消息。};void C

2021-10-26 17:45:40 192

原创 WIN32解决CHtmlView在程序退出的时候崩溃的问题

最近在WIN32平台下于CDialog上使用了CHtmlView这个控件,但是随后而来的就是程序在退出或者是在该CHtmlView窗口释放之后莫名其妙的崩溃。我的类:class CDIYAD: public CHtmlView{}对基本类CHtmlView一点都没改动。出现这样的情况大概率是使用不正确导致的释放问题,经过查证在释放该窗口之前应做这样的操作来避免释放不完全导致的崩溃:字段:CDIYADm_wndMessageAds;在OnDestroy中(或要释放时):.

2021-10-14 09:44:33 194

原创 Qt6.0.4解决在在高清屏幕下按钮渲染有问题的情况

使用Qt6.0.4时,在能开启HIGH DPI屏幕的windows系统上运行时渲染的按钮会有错误(莫名其妙多一条白线)经测试需要在QApplication加一个标记ClientApplication::setAttribute(Qt::AA_EnableHighDpiScaling); ClientApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::RoundPreferFl

2021-09-26 14:48:33 458

转载 Chromium Embedded Framework 编译

Chromium Embedded Framework 编译需要安装svn、git、python环境。确保编译时调用的python是python2。编译时会通过多种方式访问网络,需要多种方式设置代理。 1.IE全局代理2.环境变量:HTTP_PROXY=http://127.0.0.1:1081NO_AUTH_BOTO_CONFIG=C:\code\depot_tools\boto.cfg3.命令netsh winhttp set proxy http://127.0.0.1:..

2021-07-05 14:12:02 498

原创 CEF3使用Visual Studio 2010编译libcef_dll_wrapper.lib

Visual Studio 10 编译libcef_dll_wrapper.lib步骤如下:一、给libcef_dll_wrapper生成VS工程要在Windows下使用CEF开发,C++接口比较方便(libcef.dll导出的是c接口的api),对应的静态库文件是libcef_dll_wrapper.lib,但从cefbuilds.com下载的cef_binary中没有带这个库,需要自己手动编译。可惜cef_binary中也没有libcef_dll_wrapper.lib对应的VS工程。不过有

2021-07-05 14:06:56 703

原创 配置Win32程序在运行的时候不显示控制台黑框

我们时常会运行一些后台程序,但如果不把黑框去掉之后就会很low,比如:图1.显示出了console界面的后台程序该怎么关掉呢?在VS项目中这样设置:property->linker->system->SubSystem: Windows (/SUBSYSTEM:WINDOWS)图2.设置SubSystemproerty->linker->Advanced->Entery Point: mainCRTStartup图3.设...

2021-07-02 16:55:53 1579

原创 WIN32 C++ 遍历系统的进程和线程

使用大搜头遍历系统的进程:int DisplayAllProcess(){ int i = 0; char Buff[9]; PROCESSENTRY32 pe32; pe32.dwSize = sizeof(pe32); int processid = GetCurrentProcessId(); HANDLE hProcessSnap = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hProcessSn.

2021-06-18 17:24:30 708

原创 使用WIN32 API读写配置文件(读写ini文件)

可使用winbase.h中的相关接口:GetPrivateProfileStringW(szSection,szKey,L"",szValue,nValueLen, szFile);

2021-06-16 11:00:27 729

原创 VC++ 遍历并且返回指定目录下的所有文件

使用WIN32 API 来遍历指定目录下的所有文件并返回:.h#include <Windows.h>#include <stdio.h>#include <vector>#include <iostream>/** DWORD EnumerateFileInDirectory(LPSTR szPath)* 功能:遍历目录下的文件和子目录,将显示文件和文件夹隐藏、加密的属性** 参数:LPSTR szPath,为需遍历的路径*

2021-06-16 10:47:02 665

原创 C++计算数据的MD5值

本例演示使用MD5实验法计算数据“data”的MD5值并转为16进制字符串输出。MD5Function.h#pragma once#include <iostream>typedef unsigned int int_32;typedef unsigned char md5byte;typedef int_32 UWORD32;struct MD5Context {//*MD5结构 UWORD32 buf[4]; UWORD32 bytes[2]; UWORD3

2021-04-30 16:46:54 1406 1

原创 Win32下使用VC++创建桌面快捷方式

首先包含头文件:#include <Windows.h>#include <ShObjIdl.h>#include <ShlGuid.h>创建快捷方式的函数:CreateLinklpszPathObj为要创建快捷方式的exe路径lpszPathLink为快捷方式的路径lpszDesc为快捷方式的描述NULL为没有lpszArgs为启动方式的启动参数 NULL表示没有启动参数lpszIcon为使用的图标 NULL 则使用exe的图标.

2021-03-24 16:48:32 1119 3

原创 通用判断std::map对象是否存在key的模板函数

环境:vs2010该方式不会因为使用std::map[key] 这种操作而无缘无故插入了一个key。可放心使用。包含头文件:#include <iostream>#include <stdlib.h>#include <stdio.h>#include <map>#include <algorithm>#include <string>检查一个std::map对象是否有自定的key值函数(...

2021-01-15 15:05:36 1623

原创 VC在Windows下让指定程序兼容高分屏(HDPI)模式

有这样的可能:某用户的显示器是4K显示器而我们开发的APP的尺寸最大也就1080,那么这时候用户打开这应用就会很小。这种情况下用户一般是会开启系统的高清分屏的:一般都会选择缩放125%以上:这时候我们的程序如果不默认支持高清分屏那么就还是以前(未缩放)之后的大小。本例就是提供一个操作让指定的exe支持高清分屏模式。指定某exe支持或停止支持高清分屏://* absAppPath : exe的绝对路径//* enabled : 是否支持//* return .

2021-01-08 16:23:38 751 1

原创 Windows下的字符集转换(ASCII、UICODE、UTF8、GB2312和BIG5互转)

我们在使用字符串的时候会遇到各种各样的编码问题不胜其烦。本例例举了一些windows下常用的字符集转换函数。方便使用Unicode和Ascii的互转//unicode转为asciistd::string UnicodeToAscii( const std::wstring& in_str ){ int nNeedChars = WideCharToMultiByte( CP_ACP, 0, in_str.c_str(), -1, 0, 0, 0, 0 ); if (nNeedC

2021-01-05 11:33:04 1444

原创 C++对数据进行16进制编码&解码(hex encode)

本例演示使用16进制对数据进行编码先定义几个工具函数用于将数字转为16进制表示或者将16进制表示转换为数字://* 将数字转为16进制(大写)inline char ToHexUpper(unsigned int value) { return "0123456789ABCDEF"[value & 0xF];}//* 将数字转为16进制(小写)inline char ToHexLower(unsigned int value) { return "0123456789a

2020-12-21 15:50:51 7002 1

原创 Windows下C++解析程序的启动参数

为了方便控制程序的各种功能的开关和特性我们往往会在程序启动的时候加入各种参数来控制程序的某些特性,或是传入一些数据。本例提供了比较方便的代码段来供处理这些事宜。代码段是[CmdlineParser]类的具体实现CmdlineParser.hpp#pragma once#include <string>//#include <tchar.h>#include <stdint.h>#include <map>#include &l

2020-11-24 10:57:21 976

原创 从零开始使用InnoSteup进行程序打打包以及调用dll中的函数

本示例涉及:程序的打包和数字签名InnoSetup的快数上手以及一个产品从编译到安装的过程演示首先,我提供一份InnoSteup的脚本文件,小伙伴们可直接使用这个脚本进行打包(不过得修改一下相关的变量为你自己电脑上需要打包的内容); 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!//创建一些在打包过程中可能会自定义变动的变量#define MyAppName "安装包制作示范程序"#define My.

2020-11-17 14:54:57 2097

原创 手把手教如何制作数字证书并进行程序的数字签名

在网上申请证书:https://myssl.com/create_test_cert.html然后会得到若干文件:图1,网络上生成的测试证书相关文件接下来我们需要用到OpenSLL来通过cret.pem和full_chain.pem来生成自带密码的认证证书xxx.pfx打开OpenSSL:输入:OpenSSL> pkcs12 -export -out eosin_sky.pfx -inkey private.key -in cert.pem会两次提示输..

2020-11-17 14:43:45 3890

翻译 WIN32删除注册表项及其子项

也许有时会需要删除注册表的某一项(比如在卸载程序的时候)因为要删除一项注册表项需要这一项的子项都被删除才能删除成功,所以在实际操作中需要递归遍历要删除的这项注册表是否有子项我这里就从MFC中提取了相关的处理。以下是代码://*************************************************************//// RegDelnodeRecurse()//// Purpose: Deletes a registry key ..

2020-11-16 16:13:55 552

原创 使用bat脚本读取ini配置文件

脚本ReadConfig.bat@echo off@rem 传入本bat文件的第一个参数即为配置文件名set CONFIG_FILE_PARAM=%1echo config:%CONFIG_FILE_PARAM%for /f "usebackq skip=1 tokens=1,2 delims==" %%a in (%CONFIG_FILE_PARAM%) do ( @rem if %2==%%a set %3=%%b& @echo ReadConfig: %%a=%%b if

2020-06-08 20:25:27 5035

原创 使用VS2010将VC、MFC工程转为Qt-Addin工程

如果你有需求是这样的:目前在做的项目时纯VC项目或MFC项目,但是现在想在项目中使用Qt。那么本例可能帮到你。尽管我们可以自己将Qt的库和头文件包含进项目以便使用Qt相关的东西但是在涉及到生成moc文件或ui_xxx.h文件和其他qt相关的资源处理时就会很复杂(也可以通过手动去完成比如customer-build-tools等,但是效率实在是太慢了还容易出错)。因为不是Qt-addin的话我们的插件是不起作用的,就像这样:那么为什么不考虑吧VC项目或者是MFC直接转成Qt-a..

2020-05-21 14:48:56 2978

原创 C++/MFC简单实现HTTP通信(基于CHttpFile)

本例介绍一下用MFC中的CHttpFile来简单的实现Http通信,简单有效。源码:HttpTools.h#pragma once#include <iostream>#include "afxinet.h"namespace HttpTools{ enum HttpResult { HTTP_SUCCESS = 0, //成功 HTTP_FAILURE = 1, //失败 HTTP_OUTTIME = 2, //超时 }; enum Http.

2020-05-12 14:18:09 2616 2

原创 C++实现解zip解压缩功能:将一个目录内的内容打包到zip文件以及将zip文件解压到某个目录(windows平台)

本例用来简单实现windows平台下如何将一个目录下的文件压缩到指定的zip文件中,亦或是将一个zip文件的内容解压缩到某个目录。以下是源码,代码中的注释解释了相关操作,一看就懂。注:本例将这两个功能封装在了一个叫ZipPack的命名空间中。代码中使用到的zip.h zip.cpp unzip.h unzip.cpp可以从www.info-zip.org下载。同时我也提供了具...

2020-05-08 11:44:58 4103

转载 【C、C++、Windows API、 boost】多种方式判断文件、目录是否存在

转载本文是为了实际之需要,方便查阅。一、判断文件是否存在#ifdef WIN32#include <io.h> //C (Windows) access#else#include <unistd.h> //C (Linux) access #endif ...

2020-05-07 16:58:32 1325

翻译 WIN32下C++如何简单方便的使用zip解压缩《Zip Utils - clean, elegant, simple, C++/win32》

Zip Utils - clean, elegant, simple, C++/win32Adding zip/unzip easily, no LIBS or DLLs, with an elegant and simple API.This article can be found on CodeProject at www.codeproject.com/useritems/zip_u...

2020-05-07 16:31:47 2018

转载 使用GPU硬件加速FFmpeg视频转码

最近看了些视频处理相关的文章,这里有一篇是讲如何使用Nvidia显卡为视频的编解码进行加速的,为了方便查阅就转载了:本文内容包括:在Linux环境下安装FFmpeg 通过命令行实现视频格式识别和转码 有Nvidia显卡的情况下,在Linux下使用GPU进行视频转码加速的方法FFmpeg编译安装在FFmpeg官网https://ffmpeg.org/download.ht...

2019-12-11 16:52:42 2792

原创 实现使用C++/WIN32进行DNS域名解析工具

本例主要提供使用WIN32 API实现的DNS域名解析的工具。直接上代码:.h#pragma once#include <vector>#include "Ws2tcpip.h"#include "Wspiapi.h"#include "mmsystem.h"#include <windows.h>class CDNS{public: ...

2019-10-24 10:34:29 1236

原创 如何使用QAbstractItemModel定制自己想要的数据模型(使用TreeView模型讲解)

本例和大家交流如何使用QAbstractItemModel定制自己想要的数据模型.比如,突然想做一个类似QQ一样的好友界面:该怎么弄?先别慌,一步步来,今天就和大家交流如何简单快捷的弄出一个类似的玩意儿。(直接上代码,相关说明已经注释在代码中。)CFriendViewModel.h#ifndef CFRIENDVIEWMODEL_H#define CFRIENDVI...

2019-09-02 20:46:20 2788

原创 Qt使用带透明的图片制作异形窗口

希望达到的效果就是窗口的透明区域不会被检测到窗口。原理是使用QWidget自带的setMask函数,为窗口设置一层蒙版,而这个蒙版我们可以使用所需要的图片来生成,本例我是根据透明度来生成蒙版,也就是使用QImage的createAlphaMask方法获得一个基于透明度的蒙版。(如果有其他需要也可以根据特定颜色生成蒙版,这里就不再阐述了。)本例我使用了一只手的图标(带透明度的png)作为背景图:...

2019-08-21 11:37:02 1111 2

转载 SVG中的text文字高度ascent&baseline&descent(资料及测试)

SVG_text.文字高度ascent&baseline&descent(资料及测试)ZC:文字的 高度的测试在文章的后半部分1、html5 svg 第八章 文字text - 2030的专栏 - CSDN博客.html(https://blog.csdn.net/lcy132100/article/details/9722543)    2、baseline-...

2019-08-16 09:42:24 1771

原创 使用QImage处理图片为黑白

原理,根据qGray计算出r、g、b像素的灰度(亦或是自己的算法,比如我喜欢把rgb r、g、b加上偏移量v之后求平均值)记得保留alpha通道。此操作比较简单我直入主题提供两种实现方式,第一种,使用qCray计算灰度:QImage GraizeImage( const QImage& image ){ int w =image.width(); int h...

2019-08-09 11:35:32 3104

原创 使用QIamge对图片进行加亮操作

原理比较简单,就是对每个像素的r、g、b的值加上亮度值v,然后保留alpha通道。(注意考虑加上v之后可能小于0切大于255的情况)这里我就直入主题了。//* 增加亮度QImage AdjustBrightness(QImage image, int brightness)、{ QImage origin = image; QColor oldColor; int delt...

2019-08-09 10:43:44 1164

QML离屏渲染QWidget示例.zip

改项目示例演示了将QWidget嵌入QML界面中的原理和流程。 环境WIN10,VS2010,QT5.5.1

2020-09-18

将一个目录内的内容打包到zip文件以及将zip文件解压到某个目录(ZipPack).zip

这个资源是在windows下使用C++将一个目录的内容打包到zip文件以及将zip文件解压到某个目录的代码示例。

2020-05-08

zip、unzip 解压缩工具 for C++、WIN32.zip

本资源是zip、unzip解压缩工具, 包含了压缩、解压缩的相关函数和使用范例可以方便的解压缩文件和文件夹。

2020-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除