自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (18)
  • 收藏
  • 关注

原创 qt中文乱码原因分析及解决方案

首先说明几个基础概念UTF-8 BOM和UTF-8。BOM在文件头位置占三个字节,用来标识UTF-8编码,软件通过BOM来识别这个文件是否是UTF-8编码。 源码字符集。源码文件使用何种编码格式保存的。 执行字符集。可执行程序内保存的是何种编码(程序执行时内存中字符串编码)。 QString::fromxxx()函数。代表将字符串以对应格式去解析成执行字符集,qt程序运行的时候字符串编码在QString中实际都是以unicode编码存储的。fromLocal8Bit()代表从本地字符集(系统设..

2020-08-04 00:42:27 3322

原创 qt事件循环阻塞机制分析

关于事件循环所有对象的exec()方法都是开启事件循环,QApplicaion::exec()为主事件循环。程序在exec()里面无限循环,能让跟在exec()后面的代码得不到运行机会,直至程序从exec()跳出 事件循环能接收事件并处理。待处理事件被放在事件循环队列里顺序处理 事件循环的本质就是以队列的方式分配线程时间片,程序所有的代码都活动在事件循环里 事件循环是嵌套的,子层的事件...

2020-05-04 04:11:15 4886 2

原创 设计模式概述

本文为《设计模式其实很简单》一书的简单概括,推荐大家读一下这本书,简单明了、概括性强。GOF是设计模式的经典名著 《设计模式——可复用面向对象软件的基础》)的四位作者,这四个人常被称为Gang of Four, 即四人组,简称GOF。GOF描述了23种设计模式,其中不包括简单工厂模式,通常意义的设计模式指的是GOF的23种设计模式加简单工厂模式。GOF设计模式大类上分为创建型模式、结...

2020-03-21 19:15:26 183

原创 qt信号槽跨线程使用时候的坑

信号槽connect的时候扩展有5种,在跨线程使用的时候选择不同的参数会有不同的效果,使用不当会造成线程同步甚至崩溃的问题。5种参数的意义不再累述,可以参考信号槽的多线程安全性讨论 第一个坑 跨线程时connect使用Direct Connection (直接连接) 跨线程触发槽的时候,因为信号和槽不在一个线程内需要考虑同步问题(参考 信号槽的多线程安全性讨论),比较简单的方式是槽函...

2020-03-08 22:48:17 5157

原创 信号槽的多线程安全性讨论

讲正题之前首先需要了解几个基础知识点: 信号槽的连接方式 connect()函数的参数如下:QMetaObject::Connection QObject::connect(const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::Connecti...

2020-03-07 01:15:46 2494

原创 何为函数对象

函数对象就是一个重载了 () 运算符的类的对象,它可以像一个函数一样使用。

2020-01-30 22:01:05 156

原创 c++ 智能指针关键原理

言简意赅,智能指针详细原理不做介绍,只记录关键点。1,STL的std::auto_ptr实际应用基本无意义。因为使用 std::auto_ptr 时,绝对不能使用“operator=”操作符,这一操作会夺取原对象的所有权,会造成原对象悬空。void TestAutoPtr2(){ std::auto_ptr<Simple> my_memory(new Simple(1...

2020-01-30 21:55:42 95

原创 哈希表空间换时间原理

哈希表原理不再冗述,以下只记录关键原理。 哈希表的长度一般是定长的,在存储数据之前我们应该知道我们存储的数据规模是多大,应该尽可能地避免频繁地让哈希表扩容。但是如果设计的太大,那么就会浪费空间,因为我们跟不用不到那么大的空间来存储我们当前的数据规模;如果设计的太小,那么就会很容易发生哈希冲突,体现不出哈希表的效率。所以,我们设计的哈希表的大小,必须要做到尽可能地减小哈希冲突,并且也要...

2020-01-30 21:40:46 1119

原创 qtcreator多线程编译参数和release调试参数

构建-make参数开启八核编译:MAKE="mingw32-make -j8"qmake额外参数开启release调试:QMAKE_CXXFLAGS_RELEASE=$$replace(QMAKE_CXXFLAGS_RELEASE,'-O2','-O0') QMAKE_CXXFLAGS_RELEASE+=-g QMAKE_CFLAGS_RELEASE+=-g QMAKE_LFLAGS_REL...

2020-01-09 09:42:09 1526

原创 QList,QLinkedLis,QVector 内存结构

QList是最常用的容器类,他存储给定类型的数据类型T的一列值。他所维护的是一个一指针数组,该数组存储的指针指向存储列表项的值; QVector这个方式是在相邻的内存位置上保存数据的,也就是以数组的方式进行存储的,所以对起进行插入的操作的时候是一项很耗时间的,因为要有大量的数据进行移位; QLinkedLis内存为链表存储,真正意义上的链表;故而,在使用时候:1、大多数情况下可以用QLi...

2019-09-23 16:30:12 766

转载 我看鸿蒙操作系统

本文转载自https://blog.csdn.net/caoz/article/details/92802521华为宣布推出鸿蒙操作系统。其实我觉得能理解,但也蛮无奈的,所谓不得已而为之,google不提供后续版本授权,不提供新的支持,怎么办,硬着头皮也要上。有些自媒体说什么安卓慌了,google吓坏了,我真的想骂人,一群王八蛋为了点击率什么都敢写。自建操作系统,对华为来说,或许技...

2019-06-19 10:55:42 1081

原创 通用浏览器插件技术概况与分析

目录主要的浏览器插件技术其它类浏览器插件技术http通信websocket通信Firebreath相关介绍浏览器控件发展趋势 浏览器插件是应用范围比较广的技术,因为一旦涉及到b/s模式开发,总会出现web端解决不了的情况,比如操纵硬件或本地文件等。即使html5的出现增强了web端的功能,但是就目前技术和发展趋势来看,浏览器插件技术无法被替代。然而在浏览器插件技术上...

2019-01-19 19:12:17 3779 2

原创 c++ 字符串中截取json的方法

最近项目中需要对一个流进行处理,其中需要一个提取json串的功能,没有找到相关开源的方法,于是手写了一个。因为json串开始结束是以 {} 作为分割的,但是json里面有嵌套包含 {} 的情况。如果能保证截取的字符串里面的 { 和 } 的数量是相同的就可以认为是json格式。具体思路就是从流中截取第1个 { 和第1个 } 中间的字符串 ,如果字符串里面 { 和 } 数量相等,就认为截取成功;如...

2018-08-21 11:14:26 1206

原创 类的静态成员函数调用类非静态成员的方法

 在类中使用静态成员函数是一种破坏封装的行为,因为静态成员函数只能调用类的静态成员。但是在有些情况下只能使用静态成员函数,比如类内绑定自身成员函数作为回调函数,这种情况在开启多线程时很常见,如果不想将回调定义为全局那只能定义为类静态了,为了避免过度破坏封装类中应当尽量不要让类静态成原函数调用类成员。这种情况下可以用一种比较取巧的方法。因为类的静态成员和普通成员其实就一种区别,那就是静态成员...

2018-08-20 16:48:51 7040

原创 开源网络库boost.asio,libevent,mongoose学习记录以及多线程模式的实现

  目录IO操作: IO多路复用(select,poll,epoll)select:poll:epoll:异步IO(iocp,epoll)LibeventBoost.asioMongoose总结:   首先说明一下几个基础概念:      IO操作: IO操作包括两个部分:      等待数据准备好:对于一个套接口上的操作,这一步骤关系...

2018-08-17 21:15:17 6168 5

转载 “全栈”工程师 请不要随意去做

今天来说说全栈「迷之怀旧 」老朋友可能会很熟悉这篇文章,因为当时因为这篇文章的观点,我在CSDN博客头条被大牛、大佬们喷的体无完肤,特别酸爽,当然赞同我的更多。短短几小时博客200条留言,居当时csdn官方人员说:简直破了记录了。他们说我伤了他们的心,不知道从何说起,可能真的点到了大部分基础不扎实的人的心了吧,也可能我把全栈描述成了真的全栈,今天技术发展越来越快,更新频率越来越高,所以我决定再来回...

2018-03-23 17:08:04 712

转载 回调方法介绍之中国好室友篇(Java示例)

作者:futeng链接:https://www.zhihu.com/question/19801131/answer/26586203来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言在Java社区的各种开源工具中,回调方法的使用俯拾即是。所以熟悉回调方法无疑能加速自己对开源轮子的掌握。网上搜了一些文章,奈何对回调方法的介绍大多只停留在什么是回调方法的程度上。本篇文...

2018-03-23 16:39:46 138

原创 qwebsocket使用wss通信时的应注意的问题

qt里面的qwebsocket从5.10版本以后支持wss,但是需要先做ssl设置,官方文档上并没有说明这一点,本人刚开始使用的时候绕了很多弯路。现在将设置方法记录一下,希望可以帮助到大家。wss连接大概原理就是在ws连接之前使用ssl套接字先建立一次安全通道,然后在使用ws连接。所以我们在使用qwebsocket之前需要先进行ssl认证。首先去官方网站http://slproweb.com/

2018-01-11 18:15:06 6431 2

原创 使用zlib开源库解压时内存崩溃问题解决

最近一个项目中用到了解压缩,打算使用zlib开源库封装quazip在qt中开发,但是在解压缩过程中遇到了内存崩溃现象,错误指向了inflate_fast里面的汇编模块。最后经过分析发现是编译zlibwapi.dll的时候使用汇编模块造成的bug。解决方法用c编译方式取代汇编方式,在zlib源码的zlibvc工程属性-预处理器定义里面去掉 ASMINF 定义,这样就可以屏蔽掉汇编模块了。但是

2018-01-04 20:58:13 3155 6

原创 php加载COM组件失败原因及其解决方法

在php中调用其它编程语言的接口,个人感觉最方便的就是使用COM组件了。最近小弟刚开始接触php,在研究调用c++编写的COM组件的时候遇到了“'Failed to create COM object”这个错误,费了不少功夫终于解决。高版本的php需要手动开启支持COM,基本就是在php.ini中修改配置为com.allow_dcom = true和extension=php_com_dotn

2017-02-23 20:49:42 13894 1

原创 XAMPP学习之路: 第二章 模拟服务器环境

这章很简单,就是在局域网里面模拟一个服务器环境。首先打开C:\Windows\System32\drivers\etc\hosts内容如下:# Copyright (c) 1993-2009 Microsoft Corp.## This is a sample HOSTS file used by Microsoft TCP/IP for Windows.## This

2017-02-16 16:21:38 680

原创 XAMPP学习之路: 第一章 下载和安装XAMPP

XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。这个软件包原来的名字是 LAMPP,但是为了避免误解,最新的几个版本就改名为 XAMPP 了。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用,支持多语言:英文、简体中文、繁体中文、韩文、俄文、日文等许多人通过他们自己的经验认识到安装 Apache 服务

2017-02-16 14:46:55 2464

原创 ice使用简单式例 c++

ICE提供一些扩展组件,实现网络通讯的负载均衡(ICEGrid),通讯节点统一管理(ICEBOX),程序自动更新(ICEPatch)等,方便应用扩展。 在实现服务端或者客户端的时候通常都要写一些“公式化”的代码,负责Ice通信器初始化、异常捕获,以及应用终止后的销毁。如下:    1int status=0;    2    3    Ice::Communicat

2017-02-13 14:21:54 1755

谷歌本地消息机制demo及离线安装工具

谷歌本地消息机制demo及离线安装工具,离线安装工具可以绕过谷歌限制进行离线安装

2019-01-19

miracl_5.5.4_包含vs工程

miracl_5.5.4_包含vs工程,可以直接在window上编译,包含说明文档

2018-09-12

qwebsocket使用wss连接工程源码,qt5.7,debug下面已经包含ssl依赖库

qwebsocket使用wss连接工程源码,qt5.7,vs2013集成开发环境,debug下面已经包含ssl依赖库

2018-01-11

c++实现向web服务器上传文件

vs2013 c++实现上传的客户端,服务端为java写的web工程,模拟post方法,可以上传大文件

2018-01-04

c++ vs2013 解压缩

c++ vs2013 zip解压缩工程,已编译,运行正常;c++ vs2013 zip解压缩工程,已编译,运行正常

2018-01-04

qt http下载工程

qt http下载工程 ,qt5,7 vs2013环境下开发,支持断点续传

2018-01-04

修改后的最新zlib源码库,附带封装成quazip库,qt5.7的解压缩工程使用示例

修改后的最新zlib源码库,官网上的源码有bug,附带封装成quazip库,qt5.7的解压缩工程使用示例

2018-01-04

c++ 实现读写注册表

vs2013 c++ 实现读写注册表

2017-06-03

c++ MFC实现显示麦克风声音强度

vs 实现 c++ MFC实现显示麦克风声音强度

2017-06-03

c++ 获取本机mac地址

vs2013 c++ 获取本机mac地址

2017-06-03

c++ 图片转base64流

vs2013 c++ 图片转base64流

2017-06-03

c++ bho简单实现捕获浏览器404断网

vs2013 c++ bho简单实现捕获浏览器404断网

2017-06-03

c++ hook实现屏蔽键盘win,fn,右键按键

vs2013 c++ hook实现屏蔽键盘win,fn,右键按键

2017-06-03

vs2013 c++实现录制wav音频

c++实现的录音功能,简单控制台实现

2017-05-31

高质量C++编程_林锐

2017-02-24

Qt学习之路(1-60)

2017-02-24

slice2qt ice3.5.1 qt5.30版本

qt使用ice时需要的代码转换工具。之前网上的版本最多支持到qt4.3,本版本支持qt5.3.0 ice3.5.1,应该是目前最新的版本。修改和增加的功能是手动修改的,并不一定适用所有项目,需要根据具体情况修改部分代码。

2014-10-16

空空如也

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

TA关注的人

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