c++
My__God
这个作者很懒,什么都没留下…
展开
-
Qt线程池坑点
近日自己写的一个小工具,用到了Qt线程池QThreadPool和Redis,从QRunnable继承实现了一个Executor,Redis连接由一个自定义的Manager管理,根据当前所处的线程,自动创建连接,连接创建后缓存在Manager中,下次相同的线程再执行任务时,使用之前创建的Redis连接进行操作。使用中有时会出现Redis连接发出数据后,收不到回复的情况,多次试验后发现如果执行一次后,经过30秒以上再执行,就会出现这个问题,30秒以内再次执行则没这个问题。排查过程如下:1.先是怀疑是原创 2021-03-30 21:23:35 · 680 阅读 · 0 评论 -
Qt的鼠标位置知多少
一个很傻的错误要写一个很简单的软件,界面完全定制,没有标题栏,所以需要自己实现窗口拖动,然后我写下了一段很傻的代码原创 2021-01-24 23:19:34 · 1729 阅读 · 4 评论 -
Qt设置根据编译器不同链接不同的lib库
我们知道Qt的pro工程文件中可以编写编译条件,根据不同的条件生成不同的编译指令,常用的是根据系统的不同包含不同的源文件,如win32 { HEADERS += windows.h}linux { HEADERS += linux.h}除了源文件,链接的lib文件也需要在pro中指定,而在windows平台中,可选的编译器有msvc和mingw两种,且这两种编译器的库文件不能通用,那么我们怎么在pro文件中根据编译器的不同包含不同的lib库文件呢,pro文件中我们可以通过CO原创 2021-01-01 00:11:13 · 1444 阅读 · 2 评论 -
msys下mingw编译thrift
1.依赖关系thrift依赖boost,libevent,zliblibevent依赖openssl所以编译顺序为openssl,livevent,boost,thrift,这些库在linux上编译比较方便,在windows上编译经常是问题一堆,想想都头疼2.opensslopenssl编译要用msys2,类linux环境,省时省力先到https://www.msys2.org/下载安装msys2,安装完以后只有基本的linux环境,编译环境需要单独安装,先修改msys源,官方源国内原创 2020-12-24 22:07:26 · 499 阅读 · 1 评论 -
Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别
在Qt中添加库文件的时候,Qt会自动在pro文件里生成三行配置INCLUDEPATH += dirDEPENDPATH += dirLIBS += -Ldir -llibxxxincludepath 和 libs作用都比较明确,唯独这个DEPENDPATH的作用不是很清楚,他又和INCLUDEPATH 有什么区别,有点儿稀里糊涂的。先按照我们的惯常操作,问度娘,但是度娘也没有给出答案,所有提到DEPENDPATH就是一句话,设置依赖路径,这和废话没有任何区别,依赖路径又是干啥的,有什么用呢原创 2020-12-22 11:28:28 · 16511 阅读 · 11 评论 -
c++头文件引用交叉引用导致类型不识别
修改代码时,原来的引用关系未删除,导致了两个类出现了交叉引用#ifndef CLASSA#define CLASSA#include "classb.h"class ClassA{ funcA();}#endif#ifndef CLASSB#define CLASSB#include "classa.h"class ClassB{ ClassA funcB();}#endif编译时导致ClassB的定义在ClassA的定义前展开,而Clas原创 2020-12-06 10:32:07 · 1230 阅读 · 0 评论 -
C++单态模板类
单态模式作为一个经典的设计模式,使用非常广泛,最近用qt写一个应用,其中有多个类决定按单态模式实现,写的过程中感觉大体上的结构都是类似的,每个写一遍太啰嗦了,就想能不能实现一个模板类作为基类,需要使用单态模式的类只需继承这个类即可,方便使用也能保证质量,避免某次编码过程漏写东西。先再网上找了一下有没有别人已经实现的C++单态模板基类,但是网上大部分的代码都是按照单个类的模式实现的,按基类模式写的也都不够完善,或者用的时候还是有点儿麻烦,综合了几种实现方案后,实现了第一版模板基类#ifndef原创 2020-11-06 22:14:34 · 225 阅读 · 0 评论 -
Qt修改exe输出路径
Qt编译时默认的exe文件输出路径为Defaultbuilddirectory +编译类型(debug|release) +pro文件中target名字 +后缀名(exe|dll)Defaultbuilddirectory路径pro文件target如果想修改exe最终的输出路径,可修改的地方有两个,一个是修改工程对应的builddirectory修改该目...原创 2020-03-18 12:34:49 · 5150 阅读 · 0 评论 -
开机自启动读取配置文件失败
现象:一个桌面管理程序,程序启动后需要自动启动其所管理的一组程序,手动点击启动程序,运行正常,其他程序可正常启动,设为开机自启动,开机自启正常,但是无法启动其他程序。原因:手动点击启动时程序的启动目录是可执行文件所在目录,开机自启时,程序启动目录不是程序所在目录,而是C:\Windows\System,因程序读取配置文件使用的相对目录,所以会找不到配置文件,导致后续逻辑没有执行。解决方案:...原创 2020-03-18 12:25:16 · 2623 阅读 · 0 评论 -
值得学习的C语言开源项目
- 1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webben...转载 2020-02-08 22:23:49 · 2065 阅读 · 0 评论 -
vc调试总是提示项目已过期
vc调试工程时,启动前已生成过,但是每次启动还是会提示项目已过期,可能是因为工程定义文件中包含了已被删除的头文件,将已删除的头文件从工程定义中删除即可。http://shashanzhao.com/archives/861.html转载 2017-02-10 11:23:56 · 4045 阅读 · 0 评论 -
ado连接oracle报错
本地安装oracle10g,vc中使用ado方式连接远程的oracle11g数据库总是不成功,此为oracle的bug,在本地安装精简版oracle9i或10g客户端即可解决。原创 2017-02-10 11:22:48 · 443 阅读 · 0 评论 -
libodb编译过程
libodb编译过程使用环境: windosw,odb2.4.0,Qt5.7.0,mingw5.3.0,Oracle11g 下载包: 1.odb-2.4.0-i686-windows.zip 2.libodb-2.4.0.zip 3.libodb-qt-2.4.0.zip 4.libodb-mssql-2.4.0.zip 5.libodb-oracle-2.4.0.zipwin原创 2016-12-02 11:14:24 · 1015 阅读 · 0 评论 -
vs中qt addin 环境配置
环境:qt5.7.0,vs2010,qt addin 1.2.5问题:进入vs-》qt5-》Qt Options配置qt version时,提示xxxx\qmake.exe could not found开始以为是addin插件版本不对,换了1.2.4仍然不对,后来发现是设置的位置不对,设置path时要指定到qmake所在bin目录的上一级目录,我指定的是bin目录,所以一直找不到,太原创 2016-11-30 15:35:18 · 1408 阅读 · 0 评论 -
C++11新特性
1.增加宏定义支持:增加C99预定义宏支持;__func__宏,代表当前所在函数的函数名;_Pragma,类似与#pragma,使用形式为_Pragma("xxxx");__VA_ARGS__,变长函数实参名称。2.增加了long long数据类似,长度与具体平台相关,但不低于为64位。3.宏__cplusplus值修改为201103L,原标准中为199711L。4.支持静态断言sta原创 2015-03-29 21:58:27 · 814 阅读 · 0 评论 -
warning:integer constant is too large for long type
疑问描述Keywords: EDK, long long integer, 64-bit, SW, mb-gcc, powerpc-eabi-gcc, compiler, C/C++ , g++When I define a long long integer data type in SW application in EDK, a warning / error similar转载 2014-12-09 15:00:03 · 2049 阅读 · 0 评论