- 博客(87)
- 资源 (9)
- 收藏
- 关注
转载 C++11右值引用和std::move语句实例解析
右值引用(及其支持的Move语意和完美转发)是C++0x加入的最重大语言特性之一。从实践角度讲,它能够完美解决C++中长久以来为人所诟病的临时对象效率问题。从语言本身讲,它健全了C++中的引用类型在左值右值方面的缺陷。从库设计者的角度讲,它给库设计者又带来了一把利器。从库使用者的角度讲,不动一兵一卒便可以获得“免费的”效率提升…下面用实例来深入探讨右值引用。1.什么是左值,什么是右值,简单说左值可以赋值,右值不可以赋值。以下面代码为例,“A a=getA();”该语句中a是左值,getA()...
2021-06-17 21:08:16
296
原创 C++ 多线程之std::thread浅析
C++ 多线程之std::thread浅析现代操作系统能够呈现给使用者各式各样的形态,跟多线程是离不开的,例如我们在听歌的软件中可以听歌同时也可以搜索其他歌曲。为了支持多线程操作,C++引入了std::thread, 本文来探讨一下多线程的使用和基本原理。1. Native 的多线程如果在windows环境下面,使用多线程开发,那么可以使用CreateThread底层接口来创建线程,例如如下:UINT _stdcall ThreadProc(PVOID param){ in...
2021-03-21 11:18:31
1988
原创 值得推荐的C/C++框架和库,包含很多开源项目 (真的很强大)
值得学习的C语言开源项目-1. WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。下载链接:http://home.tiscali.cz/~cz210552/webbench.html- 2. Tinyhttpdtinyhttpd是一个超轻量型Http.
2020-12-04 17:19:59
1086
原创 QListView配合Model和Delegate工作的例子
主要代码:#ifndef STUDENT_H#define STUDENT_H #include <QString> class Student{public: Student(); void setId(int id); int id(); void setName(const QString &name); QString name(); private: int m_id; QString m_nam
2020-11-29 11:46:01
852
原创 原子操作 Interlocked系列函数
常用的Interlocked系列函数:1.增减操作LONG__cdecl InterlockedIncrement(LONGvolatile*Addend);LONG__cdecl InterlockedDecrement(LONGvolatile*Addend);返回变量执行增减操作之后的值。LONG__cdecInterlockedExchangeAdd(LONGvolatile*Addend,LONGValue);返回运算后的值,注意!加个负数就是减。...
2020-10-23 17:43:45
243
原创 C++多线程之_beginthread与_beginthreadex
标准C运行时库函数,需要包含头文件process.h。创建线程uintptr_t _beginthread( void (__cdecl *start_address)(void* fun),//线程执行函数,__cdecl unsigned stack_size, //线程的堆栈大小,0,默认大小(1M) void *arglist //线程执行函数的参数);uintptr_t
2020-10-23 17:39:23
928
原创 Qt Creator 编辑区关闭右侧的警告和错误提示
简 述:在Qt Creator里面,默认打开一个项目文件,点开一个*.cpp文件里面,是很容易在右侧看到成片的黄色警告⚠️或者红颜色的error提示,看着让人烦人的很,然后在此文章中,给出如何关闭这个黄色、红色警告的的方法。关闭黄色警告(和红色)提示:未修改之前:有着比较多的黄色(红色)警告,虽然不影响编译, 但是看起来很不爽:修改方法和效果:步骤:点击菜单项帮助- 关于插件 - Name - c++: ClangcodeModel,将这一栏的对钩✔️取消掉,然后重启Qt...
2020-09-23 12:04:32
6755
4
转载 进程间窗口广播消息
HWND_BROADCAST可以在窗口之间广播消息在MSDN中的描述:消息被发布到系统中的所有顶级窗口,包括禁用或隐藏的无主窗口,重叠窗口和弹出窗口。该消息未发布到子窗口。这个消息可以发送给Windows系统所有的顶层窗口,包括禁用或不可见的未拥有窗口,重叠窗口,弹出窗口,子窗口除外1.首先定义消息 静态UINT WM_ADDR = RegisterWindowMessage(_T(“WM_ADDR”));注意:发送端和接收端都需要注册此消息2.其次处理消息发送端,例如Po
2020-08-25 16:11:14
343
原创 修改Visual Studio 2005 目标程序在Win7下的UAC---去除小盾牌标记
在Win7中,当应用程序试图改变计算机的设置时会弹出UAC通知;更麻烦的是: 当用户用管理员权限安装此程序后,非管理员帐户无法运行此程序,此时只能选择管理员帐户然输入密码后才能运行,这有点像Ubuntu的sudo。msdn 里提供了一种改变应用程序当前运行权限的方法,具体如下:运行VS2005自带的mt.exe工具,向目标应用程序加入manifest资源:<?xml version='1.0' encoding='UTF-8' standalone='yes'?> &l.
2020-08-25 16:05:00
378
原创 【Qt】QWidget设置样式表无效的解决方法
1、现象在对QWidget使用样式表时无效QWidget#MyWgt{ border:1px solid gray;}2、原因原因是QWidget只支持background、background-clip和background-origin属性。3、解决方法3.1 使用QFrame代替QWidget,QFrame继承自QWidget,并且带有框架属性3.2 css样式需要通过paint才能正常绘制到控件表面,而QWidget的paintEvent()是空的,这就要求我们在继承
2020-08-25 16:01:10
4306
原创 如何用visual studio进行远程调试
在最近的软件维护过程中,软件在Win10系统下出了一些小问题,但是开发过程却是在XP上VS2005中开发的;需要远程调试。下面记录一下如何远程调试VS2005上的程序。在上述截图的路径中找到x86这个文件夹,然后拷贝到Win10系统下,打开后会出现打开msvsmon.exe(注意打开之前,先关闭掉系统的防火墙),打开后选择工具->选项选择无身份验证(允许任何用户进行调试),点击确定即可,这样的话,在Win10系统下,远程调试的环境就已经搭...
2020-08-04 11:05:14
568
翻译 Qt D指针/私有指针实现
相信不少刚开始阅读Qt源代码的朋友在看到其中的Private类和诸如Q_D、Q_Q等宏时都会思考,为什么Qt要用这样一个设计模式呢?这样一段增加了不少复杂度的代码,到底有多大的好处呢?简单的说,这样的好处在于保证代码的二进制兼容性。什么是二进制兼容性?大名鼎鼎的KDE项目是这样介绍的:一个库是二进制兼容的,如果一个程序和某个库的某个版本动态链接,并且不需要重新编译,即可在安装有该库较新版本的环...
2019-08-09 11:49:44
907
7
原创 Qwt自定义平移操作类QwtPlotPanner
Qwt提供了自己的平移机制。 QwtPanner类:提供逐步平移功能的抽象基类。被QwtPlotPanner继承。继承关系如下图所示:由于项目要求坐标轴平移时不能将曲线移出边界,所以需要自定义QwtPlotPanner。运行效果图如下:代码地址:https://download.youkuaiyun.com/download/lxj434368832/11421333...
2019-07-23 17:40:50
1375
原创 Qwt自定义缩放操作类QwtPlotMagnifier
Qwt提供了自己的缩放机制。 QwtMagnifier类:提供逐步放大缩小功能的抽象基类。被QwtPlotMagnifier继承。继承关系如下图所示:由于项目要求缩小到整个曲线都显示之后不能再缩小,所以需要自定义QwtPlotMagnifier。运行效果图如下:代码地址:https://download.youkuaiyun.com/download/lxj434368832/...
2019-07-23 16:29:37
2030
转载 Qwt源码解读之QwtPlotItem类(二)
Qwt框架提供了几种标准的图元实现。如网格(QwtPlotGrid类)、标签(QwtPlotMarker类)、标尺(QwtPlotScaleItem类)、显示SVG格式图形文件的图元(QwtPlotSvgItem类)、频谱图(QwtPlotSpectrogram类)、曲线(QwtPlotCurve类)、柱状图(QwtPlotHistogram类)、间隔区域(QwtPlotIntervalCurve...
2019-07-09 17:41:17
2261
原创 QT用QWT绘制心电图、脉氧饱和度波形图、波形图
qwt是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等,目前已经应用到许多工业领域,同时qwt也致力于3d的开发。最近因工作需要循环绘...
2019-07-09 15:16:54
5181
4
转载 QwtPlot解读---from Qwt-6.6.1
QwtPlot继承自QFrame和QwtPlotDict.QwtPlot是一个二维绘图部件,它只是一个视图窗口,真正的绘图设备是它的中心部件QwtPlotCanvas.在QwtPlot的画布上可以显示不限数量的基地图元项,图元项可以是QwtPlotCurve,QwtPlotMarker,QwtPlotGrid或任意从QwtPlotItem派生出的子类.一个QwtPlot有4条轴线,...
2019-07-08 15:56:22
598
转载 VS无法使用编辑并继续 及 警告LNK4075的解决方法
调试项目时一直都可以使用编辑并继续(Edit and continue),这个功能为我节省了大量的调试时间,故耐心地查找了一下原因,花了1个多小时后终于解决了。同时也回过头去解决了当时VS2015法使用的问题。解决方法如下:强调,请在非调试下更改:1、检查是否打开了编辑并继续功能:工具-选项-调试-编辑并继续-启用“编辑并继续”,这里要注意,VS2012和VS2013是默认关闭的,需要我们...
2019-06-27 15:34:52
4353
转载 线程池
1.线程池包括四种组件:定时器,等待,I/O, 非I/O 2.异步调用函数:BOOL QueueUserWorkItem(PTHREAD_START_ROUTINE pfnCallback, PVOID pvContext, ULONG dwFlags);该函数将一个工作项目排队放入线程池种的一个线程中并立即返回。所谓工作项目是指pfnCallback函数,它被调用...
2019-06-21 16:23:13
198
原创 CreateTimerQueueTimer学习笔记
定时器队列(Timer Queue)可以使用CreateTimerQueue函数创建。定时器队列中的定时器是轻量级对象,可以在一定时间间隔之后调用指定的回调函数(可以只调用一次,也可以是周期性的)。这种等待操作由线程池中某个线程处理的(系统级别)。 向定时器队列中添加定时器可以使用CreateTimerQueueTimer函数。更新一个计时器队列中的计时器可以使用...
2019-06-21 16:04:33
3070
转载 QTabWidget 设置部分tab上有关闭按钮,部分没有
QTabWidget设置setTabsClosable(true)后所有加进来的tab上都会出现关闭按钮,然后利用QTabWidget的tabCloseRequested(int)信号实现tab的关闭。但是有时想设置几个tab不能关闭且把上面的关闭按钮去掉则需要用到QTabBar的一个函数setTabButton(index,position,*widget),把widget设为NULL即可。...
2019-06-05 17:21:40
3069
转载 Qt QSplashScreen显示动画(gif效果)和消息
Qt自己提供了一个开场动画的类QSplashScreen,可以实现简单的图片开场的效果,但是是静态的图片。Qt播放gif格式图片是利用的QMovie实现的。因此利用QMoviee和QTimer,每隔一段时间将QSplashScreen重绘一次,来实现gif动图的效果。具体使用:CSplashScreen *splashscream = new CSplashScreen(":/inputd...
2019-05-13 13:51:19
5452
1
原创 QPushButton 的默认样式
QPushButton{ background-color: qconicalgradient(cx:0.5, cy:0.522909, angle:179.9, stop:0.494318 rgba(214, 214, 214, 255), stop:0.5 rgba(236, 236, 236, 255)); border: 1px solid rgb(124, 124, 124);...
2019-04-08 15:50:51
3349
翻译 libcurl教程翻译
原文地址:http://curl.haxx.se/libcurl/c/libcurl-tutorial.html译者注:这是一篇介绍如何使用libcurl的入门教程。文档不是逐字逐句按原文翻译,而是根据笔者对libcurl的理解,参考原文写成。文中用到的一些例子,可能不是出自原文,而是笔者在学习过程中,写的一些示例程序(笔者使用的libcurl版本是:7.19.6)。出现在这里主要是为了更好的说...
2019-03-19 14:37:12
232
转载 VC C/C++ 4种方法获取文件大小 Windows API
#include #include <windows.h>#include <io.h>#include <sys\stat.h>using namespace std;char *filepath = "C:\\1.txt";//方法一 HANDLE handle = CreateFile(filepath, FILE_READ_EA, F...
2019-03-19 11:52:35
1244
转载 C++ 使用Json封装数据和解析数据
使用C++和别的语言做交互比较常用的一种数据操作方式就是json。可以到GitHub上下载对应C++的json库源码,我自己下了一套之前的版本,可以正常使用。jsoncpp-src编译出来的库名:json_vc71_libmtd.lib(debug) | json_vc71_libmt.lib(release)需要包含的头文件: jsoncpp-src(对应源码)/include/json (...
2018-11-22 17:04:49
2028
转载 Qt之QProcess(二)调用外部程序
QProcess启动外部程序的方式常用的有三种:start()、execute()、startdetached().start()与startDetached()函数为非阻塞函数。void start(const QString &program, const QStringList &arguments, OpenMode mode = ReadWrite); void...
2018-10-24 16:05:53
3498
转载 Qt调用外部程序
Qt调用外部程序一、调用系统默认应用打开文件使用QDesktopServices的openUrl()成员这个函数是跨平台的,Qt会根据不同的系统平台调用默认的程序打开指定文件,QUrl存放制定的路径,使用非常简便,示例代码如下:QString fileName=QFileDialog::getSaveFileName(this,tr("保存"), QCoreApplication::ap...
2018-10-24 16:00:40
2141
转载 查找Windows内存泄露的工具与技术介绍
如你所知,内存泄露是由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,随后不能重新分配。随着时间推移,会导致系统内存池耗尽(分页或非分页),最终导致服务器中止。 当然,在Windows服务器中止之前,一般有其他内存泄露的症状。主要值得注意的是来自服务器服务(SRV组件)的系统事件日志的入口。尤其是注意: Event ID 2019: The server was unable t...
2018-06-29 17:26:57
13731
转载 qt--setWindowFlags各种标志位的窗口样式
记录一下windowFlags各种标志位的样式和用法,代码:#include "qtwindowflagstest.h"#include <QtWidgets/QApplication>#include <QStatusBar>#include <QObject>int main(int argc, char *argv[]){ ...
2018-06-28 17:34:20
1166
原创 Qt程序打包发布方法(使用官方提供的windeployqt工具)
Qt程序打包发布方法(使用官方提供的windeployqt工具)Qt 官方开发环境使用的动态链接库方式,在发布生成的exe程序时,需要复制一大堆 dll,如果自己去复制dll,很可能丢三落四,导致exe在别的电脑里无法正常运行。因此 Qt 官方开发环境里自带了一个工具:windeployqt.exe。 以官方 Qt 5.4.0+MinGW 开发环境为例,windeployqt工具在 %QTD...
2018-06-26 14:07:57
123863
19
转载 Xcopy用法
Xcopy 复制文件和目录,包括子目录语法xcopySource [Destination] [/w] [/p] [/c] [/v] [/q] [/f] [/l] [/g] [/d[:MM-DD-YYYY]] [/u] [/i] [/s [/e]] [/t] [/k] [/r] [/h] [{/a | /m}] [/n] [/o] [/x] [/exclude:FileName1[+[Fi...
2018-05-25 17:27:17
17746
转载 一套Windows上C/C++的编码转换函数
在开发文档编辑器经常会遇到各种编码转换的问题要解决,虽然windows api有相关的函数。但是参数多,使用复杂每次都要查手册,很容易出错。所以把常用的转换封装一下,用C的语法实现。支持c/c++注意这些函数都会在堆中创建并返回新的字串,所以返回的字符串在使用完以后要显示销毁使用free(xxx)否则会造成内存泄漏。第一条宏是取消烦人的VS编译器强制要求使用xxx_s函数的宏。如果在非...
2018-05-24 10:58:20
393
转载 c++ windows 获取mac地址
本人是使用了第四种方法,简单,可以查询多个网卡。第一种方法,默认支持WindowsXP, 在win7上使用时会出错,每次查询的Mac地址都是不一样的,都是错的。方法三是最保险的方法,但是需要做烦琐的字符处理和管道通信,不建议在速度要求高的场合使用。其他方法还没有尝试过。本人比较喜欢linux上的开发,在这里晒晒Windows相关的代码,做个保存而已。以下内容,来自http://remove
2018-05-05 17:07:18
2213
转载 Qt_Pro详解
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释 从“#”开始,到这一行结束。2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:TEMPLATE = appA> app -建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定
2018-03-15 16:02:15
219
转载 QT pro文件介绍
在QT中,有一个工具qmake可以生成一个makefile文件,它是由.pro文件生成而来的,.pro文件的写法如下:1. 注释从“#”开始,到这一行结束。2. 指定源文件SOURCES = *.cpp对于多源文件,可用空格分开,如:SOURCES = 1.cpp 2.cpp3.cpp或者每一个文件可以被列在一个分开的行里面,通过反斜线另起一行,就像这样
2018-03-15 15:58:53
334
原创 VS+QT和qtcreator工程的互相转换
QT Creator的project转成Visual Studio的project在windows下,运行Qt Command Prompt。输入命令行:qmake -tp vc XXX.pro会生成文件XXX.vcxprojVisual Studio的project转成QT Creator的project第一步,因为原V
2018-03-14 17:53:59
9039
原创 convert a vc project to a Qt Addin project
Using Visual Studio 2010+ it is now possible to convert a project to a Qt Addin project, using the "Convert project to Qt Add-in project" feature of the Qt Addin.Right click on your project
2018-03-14 17:18:23
2819
3
转载 vs的几种调试方法
进入调试的方法========================================================================================1. F5,项目右键菜单->调试->启用新实例 点击项目右键菜单->属性->配置属性->调试,可以设置调试的相关参数: 1、命令:默认是$(TargetPath),就是启动输出的
2018-03-14 14:54:21
2381
转载 nginx stream模块初探
前言nginx从1.9.0开始,新增加了一个stream模块,用来实现四层协议的转发、代理或者负载均衡等。这完全就是抢HAproxy份额的节奏,鉴于nginx在7层负载均衡和web service上的成功,和nginx良好的框架,stream模块前景一片光明。stream 模块编译stream模块默认没有编译到nginx, 编译nginx时候 ./configure –wi
2018-03-09 17:37:09
1690
XML Forms Architecture (XFA) Specification 3.1.pdf
2022-10-09
RTFV1.7规范(中文)
2022-04-02
PDF specification2.0_ISO_32000-2_FDIS
2022-04-02
Qwt自定义平移操作类QwtPlotPanner
2019-07-23
Visual Assist X 10.9.2250.rar
2019-07-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人