- 博客(358)
- 资源 (12)
- 问答 (1)
- 收藏
- 关注
原创 DRY编码原则
在一个系统中,每一处知识都必须单一、明确、权威地表达。这一点不仅在代码过程当中,在数据结构,甚至文档当中都需要遵守这一原则。}EXAM;有了开始,结束时间,就不需要时长了。
2023-05-01 15:19:20 672
原创 使用外部配置参数化应用程序
这很简单,其实就是一种意识,然而,却很重要。正如程序员修炼之道所说:如果没有外部配置,代码的适应性和灵活性就会大打折扣 ,这是坏事吗?在现实世界中,不适应环境的物种会死亡。毛里求斯岛上的渡渡鸟因为不适应岛上出现了人类与家畜,很快就灭绝了。这是被记录的首个因人类活动而灭绝的动物物种。一般可配置化的东西有如下:1、外部服务的证书2、日志级别与日志位置3、应用程序使用的端口、IP地址、机器名及集群名4、特定环境的校验参数5、外部设置参数,例如:时间间隔6、DLL的位置。
2025-01-06 17:58:27 345
原创 c++表达范围勿用数学符号
这种错误,其实就是把数学的表达,带到程序来了。在C++ primer plus书籍中P157,专门提到了这一点:取值范围的测试的每一部分都使用AND操作符将两个完整的关系表达式组合起来。不要使用数学符号将其表示为:编译器不会捕获这种错误,因为它仍然是有效的C++语句。
2024-12-30 15:11:51 541
原创 Qt导出Excel图表
QXlsx 是一个非官方的、独立的 Qt 库,用于读写 Excel 文件(.xlsx 格式)。这个库提供了一个方便的方式来创建新的 Excel 文档或编辑现有文档,而不依赖于 COM 或其他外部接口,使其适用于跨平台应用程序。QXlsx 的主要特性读取和写入 Excel 文件:支持从 .xlsx 文件中读取数据,并能够写入新数据或修改现有数据。支持单元格格式:可以设置字体、边框、颜色、对齐方式等多种单元格格式。多种数据类型:支持字符串、数字、日期和时间等多种类型的数据输入。
2024-11-28 15:57:27 632
原创 vs提示未指定的错误的问题
vs就是一个临时配置文件,删除了可以自动生成。然而,如果没正常关闭软件,出了问题,可是很让头疼,直接删除.vs文件就可以了。
2024-10-29 10:26:53 372
原创 window的0xc000007b错误
这说明基于viusal studio运行库开发的程序,都必须在visual studio库上运行。VC2015运行库,全称Visual C++ 2015运行库,是由微软公司发布的一套运行时库,用于支持用Visual C++ 2015开发的应用程序运行。这些运行库包含了运行用Visual C++开发的应用程序所必需的环境组件。vc++2015运行库软件功能:1、Visual C++ Redistributable Package 安装 Visual C++ 库的运行时组件。
2024-10-28 10:22:03 308
原创 EffectiveC++21条必须返回对象时不要返回引用(通俗讲解)
当然,你会从 getStuScore的返回值中引入构造和析构的开销,但从长远来看,这是为正确的行为付出了一个小的代价。此外,让你恐惧的账单再也不会到来。像许多编程语言一样,C++允许编译器实现者在不改变可视化代码行为的前提下,对代码进行优化,以达到改善生成码性能的目的。在一些情况中,我们发现,getStuScore 返回值的构造和析构可以被安全的消除。当编译器利用了这个事实(编译器经常这么做),你的程序就会以你所期望的方式进行下去,只是比你想要的要快。
2024-10-12 13:29:19 247
原创 Qt多线程操作sqlite数据库
通过锁解决了sqlite数据库多线程操作的写冲突和读写冲突,锁是有消耗的,但很小,我实测6-19ms,这个消耗算是可以了。多线程操作sqlite数据库,关键之处就是在于加锁,保存同时只有一个写的操作;读的操作是可以并发的;有写的操作,读的操作也必须等待,可以说,同时只有一个写操作,无其它操作,通过锁就达到了这一个目的。如果一个线程正在写,另一个线程也要写,怎么办,锁就会让另一个线程等待前一个线程写完,自己再写。锁的本质意义就是保证了,锁的区域,只有一个写线程在访问,而读的线程,可以并发。
2024-09-30 13:39:35 1560
原创 板子电源接线
AC 交流电源接入脚 220VFG 接大地的 也就是220V的地G: 输出电压的负极V: 输出电压的正极可以接 上面标示的G是公用的铭牌上标着输入是AC220V,输出是DC32V,说明您买的是交流220V变直流32V的开关电源,只能输出直流32V。其中2个AC接口接交流220V,交流不分正负;1个FG接口为悬空点;3个G接口为直流32V电源的负极,3个V接口为直流32V电源的正极,一般G接口和V接口是成对的,每一对G—V为一组直流32V电源。
2024-08-22 17:27:27 502
原创 Qt中英文支持
中英文对应,就是中英文一一对应,并不是我一开始想的自动翻译,这就好像键值对一样,就是这么的简单。相应资料链接:https://download.csdn.net/download/maokexu123/89658658。
2024-08-21 17:41:26 465
原创 winApi与QtApi的共享内存通信
1、是注意QT的封装,其key,在源码内部进行了处理,好在,提供了api接口,可以获取内部的key.2、信号量是进程间协作的常用的协作机制,非常的好用,也非常的简单,就是+1,-1操作,WaitForSingleObject函数实际就是获取成功则-1操作,其条件就是>0则获取了锁,
2024-08-15 16:31:14 1055
原创 InstallShield协议制作与去掉单位
许可协议要么没有,要么默认是英文的,我们一般需要把许可协议改成中文的。许可协议首先是rtf文件,写完内容,放到这里:beginabort;endif;szMsg = "";elseendif;szMsg = "";szMsg = "";if (nvSize!elseendif;endif;
2024-07-29 15:03:07 379
原创 Qt的64位程序与32位程序的通信
简单的说就是通过共享内存实现了64位程序与32位程序的通信,这样好处挺多。因为这样程序的独立性增强了,共享内存,真得很好用,特别是qt对共享内存的封装特别的好,直接带了锁的功能,lock,unlock非常的好用。其关键如图所示:关键就在于定死长度的数据类型,这样32位程序与64位程序都可以用,这也理解了qint32这种带着长度类型的好处了,一眼就可以看出其长度是多少,在跨进程时,就可以放心的使用,因为其长度是固定的,不同的处理器都可以正确的解析这种类型。
2024-07-04 11:36:30 1414
原创 QT的TCP服务端与多客户端通信
QT有自己的特色,大体流程各个语言都差不多,整体可以这样理解:客户端能找到服务端,然而,服务端一开始找不到客户端,如果想维护常连接,必须客户端发起,服务端对连接进行管理,从图中可知服务端需要管理这一个套接字池。
2024-06-25 15:29:35 1123
原创 Qt报表实现-QPainter+QPrinter
这里最关键就是根据位置进行画了,有些复杂,但可以精确控制位置,也是非常好的。其坐标在左上角,这与视图的坐标是一致的,其实,可以理解,其就是这么一个图:然后,就可以按照这种坐标,进行画自己想要的东西:表格、文字、图画等。项目下载地址:https://download.csdn.net/download/maokexu123/89478200。
2024-06-24 15:50:03 928
原创 qt经典界面框架
其实就是一个简单的界面显示,是很常用的形式。说起来简单也是简单,但当初,刚开始做时,感觉非常的复杂,不知如何下手。现在感觉简单多了。这个框架利用了QT的现成的MainWindow与QDockWidget,这样就很轻松拥有了界面上的组件。然则,这离系统要加菜单之类的东西,边界的设置,还是有差距的。这就用到了,QT的界面组合。QT的界面可以任意的组合,就像搭建积木一样。这一个界面很简单,里面有很多可以扩充的地方,扩充好了,就是一个非常漂亮的系统,上面只是一个界面的架子,其它的东西,包括界面,可以任意
2024-06-21 10:59:20 1154 6
原创 opencv中文路径问题
其关键在于用了toLocal8Bit()的编码转化,这一个函数的解释如下:以QByteArray形式返回字符串的本地8位表示形式。如果字符串包含本地8位编码不支持的字符,则返回的字节数组是未定义的。
2024-06-18 13:53:39 632
原创 C++中extern “C“的用法
extern "C"是经常用到的东西,面试题目也经常出现,然则,实际用时,还是经常遗忘,因此,深入的了解一下,以增强记忆。extern "C"指令非常有用,因为C和C++的近亲关系。注意:extern "C"指令中的C,表示的一种编译和连接规约,而不是一种语言。C表示符合C语言的编译和连接规约的任何语言,如Fortran、assembler等。另外,extern "C"指令仅指定编译和连接规约,但不影响语义。例如在函数声明中,指定了extern “C”,仍然要遵守C++的类型检测、参数转换规则。综上所
2024-06-13 13:44:52 551
原创 c++线性关系求值
两个变量之间存在一次函数关系,就称它们之间存在线性关系。正比例关系是线性关系中的特例,反比例关系不是线性关系。更通俗一点讲,如果把这两个变量分别作为点的横坐标与纵坐标,其图象是平面上的一条直线,则这两个变量之间的关系就是线性关系。在高等数学里,线性函数是一个线性映射,是在两个向量空间之间,维持向量加法与标量乘法的映射。例如,假若,我们用坐标向量(coordinate vector来表示 与。那么,线性函数可以表达为其中, M是矩阵。线性关系,应用非常广泛,我在工作当中,就用过好多次。
2024-06-12 16:19:38 478
原创 c++分治法求峰值
分治算法分治算法是将一个规模为N的问题分解为K个规模较小的子问题;这些子问题相互独立且与原问题性质相同;求出子问题的解,就可得到原问题的解;分治法,神奇之处在于,整体与各个部分的分解方法是一样的,可以说体现了事物的普通性与特殊性的原理。这种方法,可以求解很多问题,如果你遇上一个数据量很大,并且,让你头大的问题,一般来说,用分治法,可以很简单的解决。上面的问题,如图所示:整体与部分都可以,进行同样的分解,同样的求频率最高的组,这就是最具特点的地方。
2024-06-11 16:33:16 911
原创 Qt设置进程环境变量
这虽然是一个小问题,但也是非常让人头疼,查了不少的资料,问了不少的人。从上图可知,修改系统环境变量,是一个很麻烦的事,因为,有一个单独的进程Explorer管理这一个系统环境变量,还有这么多的进程访问这一个系统环境变量,这就导致了修改和更新很麻烦,虽然通过注册表可以修改系统环境变量,但是想立即生效,却很难。
2024-06-07 17:14:26 775
原创 win7补丁下载
一般来说,安装上windows系统就带着补丁了,但有时,安装的是原始版的操作系统是不带补丁的,一般直接更新就可以了,但有时,电脑不能联网,只能通过安装包进行升级,所以下面介绍如何下载win7补丁。
2024-06-07 15:29:41 612
原创 c++容器边遍历边删除
上面图就是结合上面例子的分析,这里最为关键的理解就是,iterator是与容器紧密关联的,如果容器发生了变化,原来的iterator就失效了,因为容器可能重新分配空间,所以必须重新获取iterator.有两种简单的获取方法:1、和原来的一样,再it = myList.begin();2、接着循环往下走:it = myList.erase(it);就是这么简单。
2024-06-06 15:41:57 805
原创 opencv判断二值的情况
先说说理论:什么叫图像的二值化?二值化就是让图像的像素点矩阵中的每个像素点的灰度值为0(黑色)或者255(白色),也就是让整个图像呈现只有黑和白的效果。在灰度化的图像中灰度值的范围为0~255,在二值化后的图像中的灰度值范围是0或者255。黑色:二值化后的R = 0二值化后的G = 0二值化后的B = 0白色:二值化后的R = 255二值化后的G = 255二值化后的B = 255那么一个像素点在灰度化之后的灰度值怎么转化为0或者255呢?比如灰度值为100,那么在二值化后到
2024-02-23 13:37:33 707 1
原创 opencv判断灰化情况
灰化是怎么判断的呢?灰化图在opencv中是单通道图,但保存时,会转化成RGB模式的图。所以,再加载,通过通道数,判断是否是灰度图,这样是不对的。解决方法:首先,一个图片在保存时,其实是以RGB模式保存的,这也是操作系统默认的保存方式。那一个灰化图在保存时,会默认转化为RGB模式,怎么转化,其就是把一个灰化值重复为三份,分别对应RGB,这样就可以了。如图所示:知道这个情况了:就知道如何判断一个图是否灰化了:那就是:R=G=B就可以了。
2024-02-22 16:45:38 1171
原创 opencv图像的本质
OpenCV是一个跨平台的库,使用它我们可以开发实时的计算机视觉应用程序。它主要集中在图像处理,视频采集和分析,包括人脸检测和物体检测等功能。数字图像在计算机中是以矩阵形式存储的,矩阵中的每一个元素都描述一定的图像信息,如亮度、颜色等等。数字图像处理就是通过一系列操作从矩阵数据中提取更深层次信息的过程。
2024-02-22 10:33:43 718
原创 c++中浮点类型比较的理解
所以,我们还得到另外一个重要的经验:使用浮点数进行相等(==)和不等(!=)比较的操作通常是有问题的。浮点数的相等比较,一般总是使用两者相减的值是否落在0的邻域中来判断的。
2024-02-18 17:11:56 739
原创 谁适合选择虚拟化
虚拟化通过软件在计算机硬件之上构建一层抽象层,允许硬件的处理器、内存、存储硬盘等被划分成多个虚拟计算机,也就是俗称的Virtual Machine(VM),每个VM运行各自的操作系统,即便他们实际都是运行在底层计算机硬件上的一部分,各个VM也表现为互相独立的计算机。由此可见,虚拟化能够更有效地利用计算机物理硬件资源,能够为一个机构在硬件上的投资带来更大的回报。如今,虚拟化是企业在IT架构上的标准做法,同时也是云计算的主要驱动技术。
2024-01-22 17:27:43 457
原创 无法解析的外部符号ShellExecuteExW
SHELLEXECUTEINFO参数说明://结构大小,sizeof(SHELLEXECUTEINFO)//指定结构成员的有效性HWND hwnd;//父窗口句柄或出错时显示错误父窗口的句柄,可以为 NULL//指定该函数的执行动作//操作对象路径//执行参数,可以为 ULL//工作目录,可以为 NULLint nShow;//显示方式//如果设置了 SEE_MASK_NOCLOSEPROCESS ,并且调用成功则该值大于32,调用失败者被设置错误值。
2024-01-17 17:45:05 622
原创 Qt5插件开发入门+示例
最终成功的调用了插件,感觉非常的不错。其利用了C++虚函数的特性,实现了运行时绑定,非常的不错!!!用图说明一下虚函数:这样就实现了接口与具体实现的彻底分离。下面的关于虚函数的介绍:1.虚函数的简介由于编写代码的时候并不能确定被调用的是基类的函数还是哪个派生类的函数,所以被成为“虚”函数。用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。
2024-01-09 14:51:34 1389
原创 下载window操作系统的网站
作为程序员经常遇到需要装操作系统的事,想找一个纯净的操作系统真不是一件容易的事,在网上一搜都是装插件,装广告的那种,根本不是原版,前段时间同事给我分享了一个,真心不错,的确是原版的,记下来:网页情况:
2024-01-03 09:38:35 496
原创 C++一个关于delete的幼稚错误
这个错误实在是蠢啊!没有细想,直接写了delete this;这说明基础还是不扎实。##delete 的工作方式delete 运算符将调用函数运算符 delete。对于不是类类型(class、struct 或 union)的对象,将调用全局 delete 运算符。对于类类型的对象,如果 delete 表达式以一元范围解析运算符 (:: ) 开始,则会在全局范围中解析解除分配函数的名称。否则,delete 运算符将在释放内存之前为对象调用析构函数(如果指针不为 null)。
2023-11-22 15:23:44 228
原创 opencv第一个例子
这是用用QT+opencv实现的一个完整的展示图片的例子,包括了项目的配置文件,完整的代码,以用做初次学习opencv用。
2023-11-02 17:09:29 304
实用工具+进制转化+十六进制数与浮点数类型的转化
2024-09-30
共享内存+信号量+Qt进程与winApi进程通信
2024-08-15
qt-QPrinter+QPainer+报表打印
2024-06-24
Qt+QWidget+界面框架-界面开发
2024-06-21
汇编编程+masm32+helloworld例子
2024-02-28
qt-C++开发例子3-演示了元对象的用法
2024-02-23
qt-C++例子2+代码化UI设计
2024-02-23
QT+OpenCV+最简单的图片+判断灰化与二值化
2024-02-22
qt-C++例子1+输出HelloWorld
2024-02-22
Qt-Qt插件技术-调用插件入门示例
2024-01-09
Axure使用手册_设计人员使用_用于设计原型
2022-02-26
程序员职业规划-如何成为优秀的企业人才.ppt
2021-12-31
软件开发规范-软件工程师-国家标准-软件开发规范.zip
2021-12-30
软件设计-工作流设计-工作流详细设计.doc
2021-12-30
项目案例-Java项目-初学者学习java-香香宠物医院.zip
2021-12-30
qt程序自动指定dll目录
2024-02-01
c语言命名规则1-关于下划线
2021-11-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人