C/C++编程
文章平均质量分 71
主要包含C/C++编程的一些基础
abcd552191868
专注于C/C++开发的程序员,记录开发过程的点点滴滴,希望大家多多支持
展开
-
C++实现单例模式-多种方式比较
设计模式-之单例模式原创 2022-11-20 23:15:56 · 318 阅读 · 0 评论 -
windows openssl安装和基本使用(代码演示)
windows, vs2019 openssl安装,openssl基本使用,C demo原创 2022-09-22 10:02:57 · 17122 阅读 · 0 评论 -
C语言简单实现Hashtable
本文使用C语言简单的实现了散列表原创 2022-05-26 10:26:02 · 562 阅读 · 0 评论 -
ffmpeg decode_video demo
ffmpeg API的使用视频解码主要代码,将压缩视频解码为非压缩的视频原创 2022-05-13 16:46:58 · 408 阅读 · 0 评论 -
Linux C epoll实现简单的Reactor模型-http server demo
reactor模型:主要用epoll实现了reactor模型,并简单的实现了http server的demo。主要知识点:socket编程,reactor模型,I/O多路复用,epoll原创 2022-03-27 21:21:35 · 1348 阅读 · 1 评论 -
C语言-多播测试代码(IPv4和IPv6)
C - 多播测试代码,包括IPv4和IPv6多播测试代码原创 2022-02-16 10:21:27 · 443 阅读 · 0 评论 -
QT资源文件-QFile Write/WriteOnly/ReadWrite打开失败说明
QT 资源文件只能读取资源文件,不能对资源文件进行修改原创 2022-01-19 13:52:35 · 9701 阅读 · 4 评论 -
C语言-线程池代码
C语言实现线程池的代码支持linux,windows系统原创 2022-01-14 22:53:24 · 2572 阅读 · 0 评论 -
Linux 系统-网络I/O模型
常见的网络I/O模型同步/异步 阻塞和非阻塞的区别多路I/O复用socket编程原创 2022-01-14 22:02:59 · 721 阅读 · 0 评论 -
【Linux C TCP服务器端-epoll案例】
linux c 网络编程-epoll案例高并发服务器I/O多路复用服务器端编程原创 2022-01-12 21:42:35 · 417 阅读 · 0 评论 -
【Linux C TCP服务器端-poll案例】
linux c 网络编程 poll编程案例I/O多路复用代码服务器端高并发原创 2022-01-12 21:32:14 · 3284 阅读 · 0 评论 -
Linux C TCP服务器端-select案例
linux C TCP编程-select编程案例I/O多路复用-高并发原创 2022-01-12 21:17:51 · 3821 阅读 · 1 评论 -
Linux C TCP编程(socket,select/poll/epoll)
linux c socket api编程例子connectbindacceptrecv/recvfromsend/sendto网络I/O多路复用原创 2022-01-09 20:52:41 · 4046 阅读 · 0 评论 -
Linux C socket API 介绍
- linux socket api基本使用- socket- accept- listen- recv/recvfrom- send/sendto- bind原创 2022-01-09 20:27:51 · 3060 阅读 · 0 评论 -
c++11智能指针的基本使用
C++11智能指针的使用主要包括share_ptr,weak_ptr,unique_ptr的基本使用说明,以及应该注意的问题代码编译环境:QT Creator(qDebug())原创 2022-01-05 12:29:54 · 2733 阅读 · 0 评论 -
内存泄漏检测组件的分析与实现(linux c)-mtrace工具使用
主要目标:实现内存泄露组件和内存泄漏检测工具-mtrace的使用说明语言:C环境:LINUX关键字: 内存泄漏、组件、LINUX、C、BUG解决、内存泄漏工具-mtrace、builtin_return_address()原创 2021-12-27 11:00:44 · 1461 阅读 · 0 评论 -
多线程死锁检测的分析与实现(linux c)-有向图的应用
操作系统: Linux 实现语言: C语言操作系统:多线程死锁检测的分析与实现数据结构:有向图的应用:增加结点,删除结点,邻接表、DFS(图的深度优先遍历)原创 2021-12-22 18:36:46 · 4097 阅读 · 0 评论 -
UDP编程-DNS解析器的分析与实现(C语言)
基本知识基本介绍将域名和IP地址相互映射的一个分布式数据库,DNS使用的端口是53。对于每一级域名长度的限制是 63 个字符,域名总长度 则不能超过 253 个字符。域名系统(英文:Domain Name System,缩写:DNS)的作用是将人类可读的域名 (如,www.example.com) 转换为机器可读的 IP 地址 (如,192.0.2.44)。DNS分层域名系统是分层次的。在域名系统的层次结构中,各种域名都隶属于域名系统根域的下级。域名的第一级是顶级域,它包括通用顶级域,例如 .co原创 2021-12-18 15:24:28 · 3470 阅读 · 2 评论 -
linux C Mysql数据库增删改查(CURD)操作
本文的目的主要是接收如何使用mysql提供的C API来实现在linux下的增删改查操作1.数据的插入2.数据的查询3.使用存储过程删除数据 (多条数据库的组合)4.实现图片的存储和读取操作这里不对数据库语句和存储过程进行说明,希望读者具有增删改查和存储过程的基本知识。原创 2021-12-16 12:57:40 · 2837 阅读 · 2 评论 -
linux c 多线程 互斥锁、自旋锁、原子操作的分析与使用
linux c 多线程 互斥锁、自旋锁、原子操作的使用原创 2021-12-12 18:03:22 · 1229 阅读 · 0 评论 -
【C语言-通讯录的分析与实现】
C语言实现一个简单的通讯录功能,包括人员的插入,删除,显示,保存到文件,加载文件功能,适合用于练习C语言的同学原创 2021-12-12 15:29:32 · 1515 阅读 · 0 评论 -
【C 语言文件操作函数大全-腾讯课程零声学院整理】
C 语言文件操作函数大全 文件操作 ,文件打开,文件函数操作API原创 2021-12-12 12:03:06 · 889 阅读 · 0 评论 -
C 统计英文文本word(单词)个数
统计一篇文字英文字符的个数-试用环境:window和linux都可以原创 2021-12-04 16:45:34 · 545 阅读 · 0 评论 -
QT QTreeWidget 实现模糊查询和多选的勾选状态
#QT QTreeWidget 实现模糊查询和勾选状态本文的主要代码基本都是总结2篇博客实现了模糊查询模糊查询和勾选状态QTreeWidget实现勾选基本上所有的操作都是递归操作,个人测试了性能,如果1w项左右的数据时,没啥问题,如果有几w,那么勾选所有的,效率很慢,需要几秒钟,大家可以测试,不废话了,直接上代码:如果有啥不懂的,可以在留言,会很详细的给出解释的以下是头文件,#ifndef CTREEWEIGHTWITHSEARCH_H#define CTREEWEIGHTWITHSEARCH_H原创 2021-01-12 22:23:38 · 2536 阅读 · 3 评论 -
QT 重写控件(QPushButton为例)实现背景图片的切换和鼠标样式切换
设置鼠标样式不起作用的可能原因一般在QT开发中,使用setCursor()给控件设置鼠标的样式效果(一般是手型和箭头的切换),一般情况下,这个函数也是起作用的,但是一旦调用了全局QApplication::setOverrideCursor()设置鼠标效果后,在使用setCursor给控件设置鼠标样式就不起效果了,这是QT的机制解决思路目前能想到的一种解决思路就是重写控件,并重写控件鼠标的相关事件,下面以重写QPushButton为例,当然代码是从网上找的,Qt自定义按钮及不同状态下图片的切换,我参考原创 2020-12-28 10:47:40 · 3414 阅读 · 2 评论 -
QT中 QPlainTextEdit自适应高度的问题(防止出现滚动条)
问题说明在QT开发过程中,经常使用到QPlainTextEdit来填入大量的文字,一般我们都会设置QPlainText的固定高度或者默认高度,但是随着文字的增多,就会自动出现滚动条,有时候我们可能需要QPlainText的高度随着自动适应文字的高度(即是说不需要出现滚动条)解决办法解决办法参考 QPlainText自适应高度的论坛,发现如果有大量空行,还是会出现滚动条,因此就在此基础上修改了一下,是否正确需要自己去验证一下,代码如下:int getDivisionValue(int x,int y)原创 2020-12-18 13:59:00 · 2803 阅读 · 1 评论 -
QT中使用 WinExec API 参数不支持中文路径的解决办法
在QT中使用WinExec时,发现如果调用外部程序,如果路径或者参数含有中文路径,可能导致无法打开应用程序或者无法使用参数,解决办法,下面是简单的解决办法:QString strImagePath = "c:/中文路径/测试/0000.mp4"std::string strVideoPath = strImagePath.toLocal8Bit().toStdString();//std::string strPath = "TyFilePlayer\\TyFilePlayer.exe "+ st原创 2020-12-03 16:57:26 · 2828 阅读 · 0 评论 -
C++ 11 使用detach()和join()函数使用的注意点
说明最近做项目的时候,使用了c++11的多线程,以前做项目都是使用微软提供一些api,比如临界区、Mutex等来实现多线程,但是比如临界区这玩意只在windows下才有,linux是没有这个概念的,所以为了跨平台,c++11之后,就提供了多线程的支持(优点就是写出来的代码跨平台)。关于多线程最经典的书籍应该算是 C++ currency in action 这本书了,基本上所有多线程的难题都能在该书找到答案,我目前也在看这本书。在该书的第二章完整的说明了如何启动一个线程、执行线程、识别线程、像线程传递参原创 2020-12-02 01:01:57 · 1795 阅读 · 0 评论 -
memset结构体报错的问题
报错问题偶尔我们使用了会使用memset初始化结构体,但是会导致有时候编译器崩溃,这时候要检查结构体里面的各个字段是否全是基本类型,如果是自定义类或者库里面的类,有时候就会出现莫名其妙的错误,结构体初始化可以直接使用 {0}进行初始化...原创 2020-12-01 09:43:22 · 734 阅读 · 0 评论 -
QT中QListWidget实现QListWidgetItem图片和文字居中
说明在使用QT开发软件的过程中,很多时候使用QListWidget来实现列表项的功能,比如MS系统的功能模块菜单,如下面2张图所示,其中第一张图是带文字和图标的列表项,第二张图是纯图标的模式,在最近开发的平台客户端的某个功能模块都用上了。列表项实现过程在实现的过程中,参考了另外一位博主的博客( 利用QListWidget实现简单的播放器界面.),所以我这里就没有过多的介绍如何实现的了,大家看了那边博客就能实现QListWeiget项图标居中的样式了,写这篇博客就是为了大家能链接过去,可能有时候搜索原创 2020-11-25 22:55:09 · 13356 阅读 · 9 评论 -
字符编码导致Rapidjson(腾讯开源的json解析库)到Fastjson(阿里开发的Java json解析库)转换失败的原因分析
开发环境说明最近在客户端的开发的过程中,使用到了RapidJson,公司的开发是客户端和数据库端都由不同的人进行开发,我负责的客户端的逻辑开发(使用c++),开发工具同时使用了VS2017和QT的编译环境,使用QT主要是为了客户端界面开发方便,而使用了VS环境主要是维护公司开发的数据库接口库,这个库的唯一作用就是作为一个中间桥梁,使用Rapidjson将数据库接口的json数据格式解析为结构体数据,从而在客户端界面进行展示,或者接收客户端的数据,使用Rapidjson将其转换为json数据,发送给数据库接原创 2020-11-12 21:32:25 · 1019 阅读 · 0 评论 -
Rapidjson的使用过程-Parse解析数组遇到的问题,附自己的解决方式
这里写目录标题简单介绍应用环境说明错误说明简单介绍关于RapidJSON,网上有很多资料,RapidJSON是腾讯开源的一个高效的C++ JSON解析器及生成器,它是只有头文件的C++库。RapidJSON是跨平台的,支持Windows, Linux, Mac OS X及iOS, Android。它的源码在https://github.com/Tencent/rapidjson/。这里也不过多介绍如何使用RapidJson,网上有很多如何使用,只介绍自己使用过程中遇到的问题,及其解决问题的方式。应用环原创 2020-11-05 20:52:20 · 2504 阅读 · 0 评论 -
QT debug 功能正常 realease和windeplayqt工具打包部分功能无法使用或者不正常
目录说明开发环境错误说明说明在项目的开发中,一般程序员都是使用debug版本进行程序的编写和调试,习惯好一些的程序员可能会天天用realease跑一遍自己写的程序是否正常,但是很多程序员可能都不会这么做,直到程序功能完成时,才将其使用realase一遍,然后进行打包给测试进行测试,这时候很有可能就会出现realease部分功能无法使用(比如按钮无效果)的情况。开发环境我使用的开发环境是QT Creator,关于debug和release的区别,网上有很多说明,这里就不详细说他们之间的区别了,其实使用原创 2020-10-28 15:28:46 · 1368 阅读 · 1 评论 -
Qt5 报错 This application failed to start because it could not find or load the Qt platform plugin
Qt5 报错 This application failed to start because it could not find or load the Qt platform plugin错误说明环境说明说明错误说明使用QT开发完一个程序,使用windeplayqt工具打包自己开发的程序,在自己电脑上运行正常,可是发给测试测试时,报错 “This application failed to start because it could not find or load the Qt platform原创 2020-10-26 15:05:03 · 351 阅读 · 2 评论