
C/C++
文章平均质量分 67
恋恋西风
专业图像处理,CT三维可视化,三维重建,CT后处理,软件开发, 熟悉OpenSSL、VTK、ITK 等第三方库;熟悉C/C++、java、C#,Python。 专注于手术导航系统开发。
展开
-
Qt C++ 使用 LZ4 库压缩成 zip格式;使用 QuaZip 打包
Qt C++ 使用 LZ4 库压缩成 zip格式;使用 QuaZip 打包,这样,可以保证压缩速度,也可以保证,打成 zip 包;原创 2025-03-15 06:00:00 · 426 阅读 · 0 评论 -
qt 使用 LZ4 共享内存的文件压缩成一个文件 保存到硬盘
要将共享内存中的多个文件快速打包成一个压缩文件并存储到本地,可以使用 LZ4 进行高效压缩原创 2025-03-15 05:15:00 · 746 阅读 · 0 评论 -
Qt QuaZip 从共享内存读了的文件,内存压缩 ,写成文件
使用。原创 2025-03-14 12:00:00 · 595 阅读 · 0 评论 -
Qt C++ 打压缩包,数据包,将多个文件打包成一个文件
打压缩包,数据包,将多个文件打包成一个文件;原创 2025-03-14 07:00:00 · 179 阅读 · 0 评论 -
Qt C++ 常用压缩库 对内存压缩支持
以下压缩库都支持内存压缩(即在内存中直接压缩和解压缩数据,而不需要依赖文件系统)。以下是每种库的特点和内存压缩的支持情况:支持内存压缩: 是特点:zlib 是完全基于内存的压缩库,可以直接在内存中压缩和解压缩数据。使用 和 函数进行内存压缩。示例: 见前文提供的 和 示例代码。支持内存压缩: 是特点:LZ4 是一个纯内存压缩库,专注于极快的压缩和解压缩速度。使用 和 进行内存压缩。示例: 见前文提供的 和 示例代码。支持内存压缩: 是特点:Zstandard 支持内存压缩,并提供高压缩比原创 2025-03-14 06:30:00 · 307 阅读 · 0 评论 -
Qt C++ 常用压缩库对比,分析,使用场景
在压缩100MB的100个文件时,不同压缩库的性能(压缩速度)会有显著差异。以下是常见压缩库的压缩速度对比和分析:原创 2025-03-13 18:30:00 · 556 阅读 · 0 评论 -
Qt C++ 常用压缩库推荐 快速压缩 解压缩数据
在Qt C++中,如果你需要快速压缩和解压缩数据,可以使用以下几种库原创 2025-03-13 18:30:00 · 1486 阅读 · 0 评论 -
跨平台 日志库 log4cpp :使用指南
log4cplus 是一个灵活的日志库,不仅仅可以跨平台,功能强大,受到了 Java 的 log4j 库的启发,并为 C++ 设计。它提供了丰富的日志级别、日志格式和输出目标的配置选项,使得开发者能够根据应用程序的需要灵活地记录信息。通过剖析log4cpp日志库的日志框架,可以清晰一个成熟的、完善的日志框架应该支持:(1)日志级别。(2)日志格式化。(3)日志输出方式。(4)日志回滚。(5)日志配置文件。注意:(1)日志的树状模块输出。(2)支持多种输出方式,每种输出方式都可以有不同的格式化。原创 2025-02-26 18:45:00 · 1525 阅读 · 0 评论 -
C++ 模板与泛型编程
C++ 中的泛型编程是一个强大的技术,可以用来编写高效、可扩展且通用的代码。它的核心机制是模板(Templates),泛型编程是一种使用模板来编写代码的方法,可以让程序员编写与具体数据类型无关的代码,通过在编译时生成代码实例来实现类型无关的设计;原创 2024-11-28 22:00:00 · 747 阅读 · 0 评论 -
windows dll 不能正常被加载,问题排查
LL(动态链接库)无法正常加载的问题可能由多种原因引起。原创 2024-08-12 20:32:51 · 1971 阅读 · 0 评论 -
C++ 类型转换 int, hex,char* float, string, wstring
C++ 日常的开发中经常会用到类型的相互转换,这里记录一下;原创 2023-08-02 22:00:00 · 1368 阅读 · 0 评论 -
c++11 assert 静态断言
其作用是如果它的条件返回错误,则终止程序执行;原型定义:assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。原创 2018-12-13 16:48:05 · 316 阅读 · 1 评论 -
cmake 遇到问题汇总
part1: error C2220: 警告被视为错误。原创 2022-10-21 12:45:05 · 1537 阅读 · 0 评论 -
C++ std::atomic volatile 区别与联系
会用和能讲清楚,绝对是两回事,今天又遇到小同事问这个问题;Part1: 联系,这个有点复杂=======原创 2022-09-13 20:30:00 · 1897 阅读 · 0 评论 -
momerymap mmap 存储映射I/O
如果顺序访问一个文件,并假设执行I/O时使用的缓冲区大小足够大以至于能够避免执行大量的I/O系统调用,那么与read()和write()相比,mmap带来的性能上的提升就非常有限或者说根本就没有带来性能上的提升。存储映射I/O使一个磁盘文件与存储空间中的一个缓冲区映射,于是当从缓冲区中取数据,就相当于读文件中的相应字节。文件映射:文件映射是将一个文件的一部分直接映射到调用进程的虚拟内存中,一旦一个文件被映射之后就可以通过在相应内存区域中操作字节来访问文件内容了。匿名映射:一个匿名映射没有相应的文件。...原创 2022-08-08 18:00:00 · 268 阅读 · 0 评论 -
C 回调函数,接口 函数指针作为函数的参数 函数指针作为结构体成员
首先声明,这个是C的用法,C++要杜绝;函数指针有两种常用的用法:1.一种是作为结构体成员;2.函数指针作为函数的参数;两种方式的意义其它是接口,C 中也叫 回调函数;原创 2022-06-30 22:00:00 · 627 阅读 · 0 评论 -
C++ ostringstream
实现字符串流的处理,便于数字和字符串之间的自由转换;原创 2022-06-26 11:47:22 · 5288 阅读 · 0 评论 -
RPC(Remote Procedure Call Protocol)远程通信框架
一、简介官方网站:Remote Call Framework (RCF) - Delta V Software下载版本:RCF 3.2.403 ubuntu 20https://www.deltavsoft.com/downloads/RCF-3.2.413.tar.gzRCF(Remote Call Framework,远程调用框架)是一个C++的框架。这个框架用来为实现C++程序进程间调用提供一个简单和一致(consistent)的方法。这个框架基于强类型的C/S接口概念,类似于用.原创 2022-05-19 21:30:00 · 963 阅读 · 0 评论 -
VS Visual Studio 环境变量 配置
例:有时候会提醒 VCINSTALLDIR 找不到 缺少这里把环境变量 都整理一下;我这里环境是 windows 10 安装了 vs2017 Enterprise请在windows 环境变量 中设置以下,具体根据实际情况设置相应版本;VCIDEInstallDir=C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\VC\VCINSTALLDIR=C:\Program Files (x86)原创 2022-01-13 21:00:00 · 10009 阅读 · 0 评论 -
VS 无法打开 源 文件 msado15.tlh“ 几种原因
1.路径不正常如:#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF")确认一下路径是否正确 ,看一下相应位置有无这个文件;2.设置不正确,比如我的工程是从QT转过的,有些设置需要自己调整我这里 多处理器编译 ,选择 是 “是”;这会造成这个原因修改如下:#import 不支持多处理器编译. 项目属性页-> C/C++ ->.原创 2021-12-18 11:32:53 · 4602 阅读 · 3 评论 -
memcpy memmove 区别及应用
memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count);1.他们的作用如果是拷贝非内存重叠区域是一样的;2.当内存发生局部重叠的时候,memmove保证拷贝的结果是正确的,memcpy不保证拷贝的结果的原创 2021-11-23 20:30:00 · 732 阅读 · 0 评论 -
C++性能之CPU亲和性,绑定cpu
前言CPU领域中最广为人知的一条定律——摩尔定律:预计18个月会将芯片的性能提高一倍。过去几十年,各大公司致力于提高CPU晶体管密度和提高CPU工作频率,使得CPU的性能提升基本符合摩尔定律。但随着工艺不断发展,晶体管密度提升已经接近物理极限,CPU工作频率也由于功耗和发热的制约而无法继续提升。在基础物理领域没有大的突破的前提下,单核CPU的性能提升日益困难,于是,各大公司将目光投向了通过增加CPU核心数提高性能领域,双核、4核、8核、16核等一系列多核CPU相继问世。怎样合理调度多个CPU核心运行原创 2021-05-21 11:14:52 · 2123 阅读 · 0 评论 -
c++内存池实现
利用C/C++开发大型应用程序中,内存的管理与分配是一个需要认真考虑的部分。本文描述了内存池设计原理并给出内存池的实现代码,代码支持Windows和Linux,多线程安全。内存池设计过程中需要考虑好内存的分配与释放问题,其实也就是空间和时间的矛盾。有的内存池设计得很巧妙,内存分配与需求相当,但是会浪费过多的时间去查找分配与释放,这就得不偿失;实际使用中,我们更多的是关心内存分配的速度,而不是内存的使用效率。基于此,本文按照如下思想设计实现内存池。主要包含三个结构:StiaticMemor原创 2021-04-21 17:17:49 · 529 阅读 · 0 评论 -
C++强制类型转换
C++ 类型转换(C风格的强制转换):在C++基本的数据类型中,可以分为四类:整型,浮点型,字符型,布尔型。其中数值型包括 整型与浮点型;字符型即为char。(1)将浮点型数据赋值给整型变量时,舍弃其小数部分。(2)将整型数据赋值给浮点型变量时,数值不变,但是以指数形式存储。(3)将double型数据赋值给float型变量时,注意数值范围溢出。(4)字符型数据可以赋值给整型变量,此时存入的是字符的ASCII码。(5)将一个int,short或long型数据赋值给一个char型变量,只转载 2021-04-20 18:48:33 · 63271 阅读 · 7 评论 -
const的用法,特别是用在函数前面与后面的区别!
const的用法,特别是用在函数前面与后面的区别!const的用法,特别是用在函数后面在普通的非 const成员函数中,this的类型是一个指向类类型的 const指针。可以改变this所指向的值,但不能改变 this所保存的地址。在 const成员函数中,this的类型是一个指向 const类类型对象的 const指针。既不能改变 this所指向的对象,也不能改变 this所保存的地址。关键字:Const,Const函数,Const变量,函数后面的Const看到const关键字,C++.原创 2021-04-15 15:55:21 · 2456 阅读 · 3 评论 -
VC 大文件读取
个别时候,我们要读取非常大的文件,如 5GB 要把文件读出,再写进,耗费的是CPU利用率与内存以及IO的频繁操作。这显然是令用户难以忍受的为了解决这个吃内存,占CPU,以及IO瓶颈,windows核心编程提供了内存映射文件技术;因为数据非常大,还要处理,我采用了,内存映射+线程池;先看一下内存映射读数据:#include <windows.h>#include <stdio.h>#include <iostream>#include <st原创 2021-02-02 09:06:39 · 784 阅读 · 1 评论 -
C++ 静态成员的使用(整理)
C++中的静态成员(静态成员函数和静态数据成员)属于类所有,不属于类的对象,与普通的成员相比,静态成员无this指针。静态成员变量不同的对象占用不同的内存,这就使不同对象的成员变量相互独立,互不影响。给定两个对象a和b,假设我们修改了a.a,b.a并不会受到影响。如果我们想要在多个对象之间共享一个数据,这就用到了静态成员变量。静态成员变量是一种特殊的成员变量,被static修饰。 只能被定义一次,储在全局常量区,不占用对象的储存空间这就意味静态成员不随对象的创建而分配内存,也不随对象的销毁原创 2020-10-19 09:07:37 · 2145 阅读 · 0 评论 -
linux 、windows 获取硬件 ID
一、cpuid 有可能会重复#include <cstdio> #include <cstring>#include <string> #include <cstdlib> #include <arpa/inet.h> #include <fstream> #include <unistd...原创 2020-02-21 22:10:04 · 1438 阅读 · 0 评论 -
MFC CListCtrl 使用 重写CListCtrl 控件 实现 Item 可编辑
MFC CListCtrl 使用:初始化:LVCOLUMN lvColumn; lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH; lvColumn.fmt = LVCFMT_LEFT; lvColumn.cx = 120; lvColumn.pszText = TEXT("ID"); list_show.InsertColumn(0,&lvColumn); lvColumn.mask = LVCF_FMT | LVCF_T.原创 2020-09-18 09:57:19 · 1291 阅读 · 0 评论 -
C++ CTreeCtrl 树结构 非递归读取
有时需要,非递归实现,否则不好查它的上级是哪个;typedef struct ContentStruct{ string key; string value;}PARAM_CONTENT_STRUCT;typedef struct ParamStruct{ string section; vector<PARAM_CONTENT_STRUCT> content;}PARAM_STRUCT;vector<PARAM_STRUCT> m_paramL.原创 2020-08-21 12:47:10 · 266 阅读 · 0 评论 -
C++多继承 基类命名冲突
多继承中的二义性问题 在派生类中对基类成员的访问应该是唯一的。但是,在多继承情况下,可能造成对基类中某个成员的访问出现了不唯一的情况,这时就称对基类成员的访问产生了二义性。class base1{public: void fun();};class base2{public: void fun();};class derived:public base1,public base2{};int main(){ derived obj; obj.fun(); ...原创 2020-08-18 10:39:33 · 1168 阅读 · 0 评论 -
Elastix配准工具编译 windows
开发环境 windows7 vs2013elastix-4.9.0Elastix是基于ITK的配准工具包,并且也是开源的,可以从官方网站下载到Elastix的源代码,进行编译使用,或者对源代码进行修改,满足不同的使用需求。Elastix源代码下载Elastix的源代码可以从Elastix官方下载页面处下载Source code得到,建议同时下载Elastix使用手册(Manual),参考使用手册使用更为方便。Elastix源码编译Elastix编译环境要求编译器Elastix的编译.原创 2020-07-09 15:59:02 · 788 阅读 · 0 评论 -
vs2010 升级 vs2015问题
fatal error LNK1295: “/OPT:NOREF”与“/LTCG:incremental”规范不兼容;链接时不使用“/LTCG:incremental”项目属性-》链接器-》优化-》引用-》是项目属性-》链接器-》命令行-》其它选项/SAFESEH:NO因为我用到了 SDL 还要加上宏:SDL_MAIN_HANDLED...原创 2020-06-02 18:12:02 · 561 阅读 · 0 评论 -
ActiveX异步回调 JavaScript(通过事件方式)有 demo,手动修改 classid
最近在给银行做一个项目,使用ocx 来做,显示视频,和获取数据,如果一个接口阻塞,会造成视频卡顿,网页无响应等,原以为是cpu占用过高问题,但cpu 降下来后也无效,怀疑是刷新问题;最终确认是 接口不能阻塞时间超过5秒,否则就会出出这种问题;解决方案只能采用异步的方式来解决; 把业务逻辑的执行放到多线程下,通过 ocx 的事件 吐给 js。 一、建立MFC ActiveX ControlCJavaScriptActiviXCtrl在ClassWizard automatio...原创 2020-05-22 09:04:32 · 631 阅读 · 1 评论 -
腾讯 mars 微信跨平台跨业务基础组件(二)Android 平台 xlog 使用
xlog 好处就不多说了见:微信终端跨平台组件 mars 系列(一) - 高性能日志模块xlog我看了一下mars/sample android 竟然没有申请动态写权限,并且targetSdkVersion28,所以哪个demo 不能正常生成日志;注意如果只想使用 xlog 不想使用 mars 的其他组件可以选择: 在 app 的 gradle 文件 app/build.gradle,...原创 2020-03-19 19:14:58 · 1781 阅读 · 0 评论 -
腾讯 mars 微信跨平台跨业务基础组件(一) xlog 编译
Mars -- 微信跨平台跨业务基础组件Mars:https://github.com/Tencent/marsMars 是什么Mars 是微信官方的终端基础组件, 是一个业务性无关,平台性无关 使用C++ 编写的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP、UWP 等客户端。注意:目前仅支持Android、iOS、Mac、Windows 平台,其他平...原创 2020-03-19 18:30:19 · 1633 阅读 · 0 评论 -
Release VC++ 运行 缺少库 问题
最近又遇到 release 缺少库问题;整理一下:一 、VS2015 xx140.dll我的是 VS2015 所有的 debug 和release 的库都在这里,包括 msvcp、msvcr、vcomp,mfc 等;如果想简单也可以使用安装程序 就是 1033,如果是vs2017或其它,可能不是1033,其它目录应该大同小异。注:安装程序一般比较安全,有可能库直接拷贝不好用...原创 2020-03-17 19:31:32 · 751 阅读 · 0 评论 -
c 语言中的#和##
我们使用#把宏参数变为一个字符串,用##把两个宏参数贴合在一起.当宏参数是另一个宏的时候,需要注意的是凡宏定义里有用’#’或’##’的地方宏参数是不会再展开。下面举两个实例:1."#" #define print(F,V)\ printf("the " #V " is :"F ,V) //加上#不会替换参数,只替换其所对应的字符;int main(){ ...原创 2020-03-14 15:01:27 · 436 阅读 · 0 评论 -
字符串流 stringstream ofstream ifstream
#include<iostream>#include<sstream>using namespace std;int main(){ double a,b; istringstream is("12.3445 2.3"); is>>a>>b; //...原创 2020-03-12 17:53:02 · 1367 阅读 · 0 评论 -
VC 各种字符编码转化 utf8 gbk unicode 记录一下
windows平台下微软的库自带了一些api可用于几种编码格式间的互相转码,其实可以用一个iconv开源跨平台的转码库,那个方法更方便且统一。使用前要引入头文件和命名空间#include <iostream> #include <string> #include <fstream> #include <windows.h&...原创 2020-01-15 16:33:05 · 621 阅读 · 0 评论