C++
文章平均质量分 68
终成一个大象
战略上要藐视敌人,战术上要重视敌人!
展开
-
qtextcodec file not find 问题解决
qtextcodec file not find 问题解决原创 2022-05-06 14:25:47 · 2977 阅读 · 0 评论 -
二叉树的循环遍历和递归遍历(经典)
主要介绍二叉树遍历的经典方法:递归和循环递归遍历前序遍历:根、左、右中序遍历:左、跟、右后序遍历:左、右、跟循环遍历前序遍历:跟、左、右中序遍历:左、跟、右后序遍历:左、右、跟原创 2022-01-12 17:52:16 · 760 阅读 · 0 评论 -
obs源码 windows编译
本文章主要记录obs源码在windows平台的编译过程,详细记录每个细节。obs源码编译一、编译环境1、Qt52、CEF Wrapper 37703、windows版本 CMake4、Windows版本 Git5、Visual Studio 20196、vs2019开发工具包二、源码编译1、源码下载2、创建输出目录3、配置CMake选项三、obs sln项目编译原创 2021-12-17 18:47:45 · 2559 阅读 · 16 评论 -
lua脚本拓展nginx功能
文章目录一、nginx介绍1、定义2、优点3、使用场景二、lua介绍1、定义2、优点3、使用场景三、nginx中使用lua四、lua API介绍五、demo举例一、nginx介绍1、定义Nginx 作为一款面向性能设计的HTTP服务器,相较于Apache、lighttpd具有占有内存少,稳定性高等优势。2、优点占用内存少,稳定性高、模块化3、使用场景网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器,高并发大流量站点常用来做接入层的负载均衡,还有非常常见的用法是作为日志采集原创 2021-02-21 17:29:34 · 630 阅读 · 0 评论 -
openresty及lor入门教程
开发环境准备openresty安装下载openresty-1.13.6.1-win32.zip,解压到本地任一目录eclipse安装lua插件eclipse–>help–>eclipse marketplace–>输入lua,只能查到一个,下载并安装环境配置说明打开openresty的目录,找到conf文件夹下的nginx.conf找到http下的server部分,listen对应的是端口号,可以修改。增加 include 语句,引入分配置文件,对应的是自己lua项目原创 2020-06-08 14:29:30 · 1274 阅读 · 4 评论 -
C++11特性总结
C++11新特性总结语法autodecltypenullptrfinaloverride=default和=deletelambda表达式moveSTL新内容arrayforward_listunordered_map和unordered_set智能指针shared_ptrunique_ptrweak_ptr原创 2020-05-11 18:11:10 · 457 阅读 · 0 评论 -
数据结构和算法--查找算法
数据结构和算法查找算法字符串查找(单列)七大查找算法1. 顺序查找2. 二分查找3. 插值查找4. 斐波那契查找5. 树表查找6. 分块查找7. 哈希查找排序算法:非线性时间排序比较排序冒泡排序快速排序插入排序插入排序希尔排序选择排序选择排序堆排序归并排序二路归并排序多路归并排序线性时间排序9. 计数排序10. 堆排序...原创 2019-06-01 11:16:22 · 373 阅读 · 0 评论 -
数据结构和算法--排序算法
数据结构和算法查找算法字符串查找(单列)七大查找算法排序算法非线性时间排序比较排序1. 冒泡排序2. 快速排序插入排序3. 插入排序4. 希尔排序选择排序5. 选择排序6. 堆排序归并排序7. 二路归并排序8. 多路归并排序线性时间排序9. 计数排序10. 堆排序11. 基数排序非线性时间排序比较排序1. 冒泡排序2. 快速排序插入排序3. 插入排序4. 希尔排序...原创 2019-06-01 11:15:47 · 194 阅读 · 0 评论 -
cuda编程 性能优化
cuda性能优化概述开发环境优化点1. 数据格式2. 内存拷贝3. 显存拷贝4. 多线程优化5. gpu异步处理API6. gpu流并行7. gpu处理逻辑优化原创 2019-06-01 10:05:25 · 370 阅读 · 0 评论 -
im源码分析(teamtalk)--DbProxyServer
im源码分析(teamtalk)–DbProxyServer原创 2019-06-06 01:28:13 · 1372 阅读 · 0 评论 -
im源码分析(teamtalk)--RouteServer
RouteServer介绍RouteServer: 路由服务器,在存在多个MsgServer的情况下,用户可能登陆在不同的MsgServer上,这个时候就需要RouteServer进行转发。源码分析void CRouteConn::HandlePdu(CImPdu* pPdu){ switch (pPdu->GetCommandId()) { case CID_OT...原创 2019-06-05 18:34:06 · 906 阅读 · 0 评论 -
im源码分析(teamtalk)--LoginServer
LoginServer功能介绍登陆服务器,主要作用是实现负载均衡,分配一个负载小的MsgServer给客户端使用。这里的负载较小是指MsgServer的tcp连接数大小。源码分析1.交互服务 int ret = netlib_init(); if (ret == NETLIB_ERROR) return ret; CStrExplode client_listen_ip_list...原创 2019-06-05 15:38:39 · 2368 阅读 · 0 评论 -
控制台界面控制(五):输入输出
c中puts()函数用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。 功 能: 送一字符串到流stdout中 用 法: int puts(char *string); 程序例: #include <stdio.h> int main(void) { char st...转载 2019-05-30 22:23:02 · 4086 阅读 · 1 评论 -
数据结构和算法--字符串查找
数据结构和算法查找算法字符串查找(单列)字符串查找七大查找算法排序算法:非线性时间排序比较排序冒泡排序快速排序插入排序插入排序希尔排序选择排序选择排序堆排序归并排序二路归并排序多路归并排序线性时间排序9. 计数排序10. 堆排序11. 基数排序字符串查找...原创 2019-06-01 11:17:01 · 981 阅读 · 0 评论 -
ring buffer 环形队列 C++实现
#include <iostream>using namespace std;template <class T>class RingBuff {private: unsigned int m_size; int m_in; int m_out; T *m_data; public: R...原创 2019-08-24 16:42:35 · 1398 阅读 · 0 评论 -
linux后台执行(nohup)之大坑
问题场景通过xshell远程登录服务器,然后启动几个后台服务,验证后服务功能都正常,ok!然后过了一段时间发现服务器有问题,排查之后发现,有一个服务莫名的挂了,通过日志定位到接收到SIGHUP信号,然后挂了!WTF???问题分析确认后台运行命令:nohup ./myserver > myout.log 2>&1 & 没有问题。nohup启动服务后,关闭...原创 2019-08-23 11:59:18 · 1369 阅读 · 0 评论 -
opencv源码编译(基于android NDK)
opencv 基于android NDK平台编译总结: 1\opencv简介 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。 O...原创 2018-05-26 18:21:44 · 7727 阅读 · 8 评论 -
av_buffersrc_add_frame分析
av_buffersrc_add_frame全面分析原创 2019-09-28 11:31:07 · 4703 阅读 · 0 评论 -
avcodec_encode_audio2返回-22
错误原因该函数的主要功能:根据音频编码器和音频frame数据编码成音频packt数据。返回-22主要原因:参数错误,具体如下音频编码器的参数(声道数,采样率,采样格式,位宽,采样数)和frame的参数不一致。编码格式对应的采样数和frame的采样数不一致。只要声道数,采样率,采样格式,位宽,采样数,任何一个参数不一致,都需要进行重采样。错误案例不知道什么原因,我frame采...原创 2019-09-28 12:53:04 · 2358 阅读 · 1 评论 -
nb_samples(采样数)转换
可以参考:https://blog.csdn.net/Martin_chen2/article/details/100103655中的错误案例。具体方法如下:#define AAC_ENCODE_SIZE 1024// 定义重采样SwrContext *swr = NULL;swr = swr_alloc();av_opt_set_int(swr, "in_channel_layou...原创 2019-09-28 13:07:28 · 4265 阅读 · 0 评论 -
av_interleaved_write_frame错误 Invalid data found when processing input
问题描述:调用av_interleaved_write_frame接口发送AAC格式的音频数据时,报错:Invalid data found when processing input。解决方案:if (pOutFormatCtx->oformat->flags & AVFMT_GLOBALHEADER){ pOutAudioCodecCtx->flags ...原创 2019-09-28 16:51:01 · 3219 阅读 · 0 评论 -
用MFC实现多TAB页的切换
MFC Tab Control控件的详细使用1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最...转载 2015-01-15 17:33:23 · 2701 阅读 · 0 评论 -
控制台界面控制(二):模拟信号
控制台模拟鼠标、键盘操作模拟鼠标、键盘操作,能让命令行顿然强大,想想,制作批处理版屏幕键盘等都不在话下(已制作过,效果很不错)。虽然这也跟CUI无关。本教程教会你如何让命令行模拟鼠标、键盘的操作。鼠标的击键操作,需要用到mouse_event这个API函数。示例代码:模拟左键单击:mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);mouse...转载 2019-05-30 22:19:53 · 494 阅读 · 0 评论 -
用户名密码正确,在登陆界面循环的问题centos7
PS:记录一次centos7在登陆界面循环的问题:一、问题描述:之前用的挺好,偶尔一次重启后,输入用户名和密码后,进入不了桌面系统,过一会又循环到登陆界面,让你再次输入密码,一直循环。。。二、问题原因:更新软件,导致系统底层和gnomo(界面)不兼容修改了某些系统配置文件原创 2017-07-02 19:06:39 · 38196 阅读 · 6 评论 -
error realloc(): invalid next size 崩溃
error realloc(): invalid next size 崩溃越界访问原创 2017-08-28 18:44:01 · 4127 阅读 · 0 评论 -
控制台界面控制(六):边框
本文为转载文档,源文档地址:http://blog.csdn.net/bnb45/article/details/7997603效果[cpp]view plaincopy#include"MyConsole.h" #include<stdio.h> intmain() { CMyConsolemyCo...转载 2016-01-07 19:37:18 · 1251 阅读 · 0 评论 -
控制台界面控制(七):移动文本
本文为转载文档,原文链接:http://blog.csdn.net/bnb45/article/details/8034597控制文本的移动,可以取代清屏再重绘操作。如果用来做文本编辑器的滚动条是很合适的,也许也可以用在俄罗斯方块上面。控制台使用一个函数把某个区域内的文本移动到另一个区域。效果在缓冲区中输出4行字,分别在对应的行上。然后使用移动文本的函数把第三行后面的...转载 2016-01-07 19:39:25 · 1090 阅读 · 0 评论 -
控制台界面控制(四)
本文为转载文档,源文档链接:http://blog.csdn.net/bnb45/article/details/7983562设置光标位置[cpp]view plaincopy//----设置光标位置 voidCMyConsole::Goto(shortx,shorty) { COORDpos={x,y}; ...转载 2016-01-07 19:32:00 · 1140 阅读 · 0 评论 -
控制台界面控制(三):设置窗口标题
本文为转载文档,源文档链接:http://blog.csdn.net/bnb45/article/details/7981421相关信息字符编码 UNICODE:如果只是用英文字母就能代表足够多的意思,UNICODE就不会出现了。著名的 ASCII 码已经可以表示大部分信息,它是一种非常可靠的标准,没有其他哪一种标准能像 ASCII 一样普及。但在美国之外的世界里,ASC...转载 2016-01-07 19:30:05 · 936 阅读 · 0 评论 -
MFC自定义消息响应函数
该文章时转载自:http://blog.csdn.net/foreverhuylee/article/details/25394401手动添加消息和消息处理函数1、由于是用户自己定义的消息,所以首先要定义一个消息宏如下:#define WM_MYMESSAGE (WM_USER+1) //在*.h文件里添加注意:为防止用户定义的宏和系统定义宏冲突,所以系统提供了...转载 2015-10-24 17:32:18 · 872 阅读 · 0 评论 -
MFC实现多TAB页的切换
风雨无阻只有一条路不能选择——那就是放弃的路;只有一条路不能拒绝——那就是成长的路。MFC Tab Control控件的详细使用1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish.2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里...转载 2015-01-15 17:29:46 · 7493 阅读 · 2 评论 -
MFC实现打开、保存文件对话框和浏览文件夹对话框
一、打开文件夹:1、CFileDialog实现CFileDialog hFileDlg(TRUE,NULL,NULL,OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST|OFN_READONLY, TEXT("支持的图像文件 (*.jpg;*.gif;*.bmp;...)|*.jpg;*.gif;*.bmp|专用Tiff图像文件(*.tiff;*.tif)...转载 2015-01-05 14:41:06 · 706 阅读 · 0 评论 -
在MFC中实现“浏览文件夹”功能
假设是对标号为ID_BTN_BRS的响应,那么这个消息响应函数可能会是这样子:[cpp]view plaincopyprint?voidCXXClass::OnBottonBrows(void) { //选择文件夹 charszSelDir[MAX_PATH+1]; memset(szSelDir,0,MAX_PATH+1);...转载 2015-01-05 14:35:03 · 964 阅读 · 0 评论 -
关于如何使用vc6.0读取xml文件中的内容
一,建立一个基于对话框的程序,工程名为xml;二, 初始化OLE.BOOL CXmlApp::InitInstance(){AfxOleInit();…….}三, 在对话框中增加一个按钮,ID为IDC_CREATE,我们在这个按钮的响应函数中生成一个xml文件.void CXmlDlg::OnCreate(){MSXML2::IXMLDOMDocumentPtr pDoc;M...转载 2015-01-03 21:57:04 · 1492 阅读 · 0 评论 -
控制台界面控制(五):文字颜色
本文为转载文档,原文档链接:http://blog.csdn.net/bnb45/article/details/7994025设置字符属性VC控制台提供了一个设置文本属性的函数,它的作用包括设置文本颜色,设置文本背景颜色,以及下划线等。[cpp]view plaincopyBOOLSetConsoleTextAttribute( HANDLE...转载 2016-01-07 19:34:23 · 885 阅读 · 0 评论 -
控制台界面控制(八):光标设置
本文为转载文档,源文档链接:http://blog.csdn.net/bnb45/article/details/8034641光标的作用在于提醒使用者,你的输入将会在这个位置出现。目前对于光标的操作只有一个,移动光标,改变输出的位置。有时候光标在那里一闪一闪的是不行的,比如做了一个菜单,或者一个封面。可以在控制台使用的函数中有一个可以用来隐藏光标,除此之外,它在光标显示的时候还能...转载 2016-01-07 19:40:41 · 3062 阅读 · 0 评论 -
函数指针,指针函数,数组指针,指针数组 区分
函数指针:重点在指针,表示它是一个指针,它指向的是一个函数。eg: int (*fun)();指针函数:重点在函数,表示它是一个函数,它的返回值是指针。 eg: int* fun();数组指针:重点在指针,表示它是一个指针,它指向的是一个数组。eg: int (*fun)[8];指针数组:重点在数组,表示它是一个数组,它包含的元素是指针 eg: int* fun[8];...转载 2019-05-08 17:47:48 · 172 阅读 · 0 评论 -
堆区、栈区、静态区、常量区还有???
常见的存储区域可分为:1、栈由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。2、堆由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,程序会一直占用内存,导致内存泄漏,在程序结束后,操作系统会自动回收。3、自由存储区由malloc等分配的内存块,它和堆是...转载 2019-05-08 16:14:29 · 139 阅读 · 0 评论 -
构造函数为什么不能为虚函数?析构函数为什么要为虚函数?
一、构造函数为什么不能为虚函数?参考连接:https://www.cnblogs.com/mengfanrong/p/4011342.html从存储空间角度,虚函数相应一个指向vtable虚函数表的指针,这大家都知道,但是这个指向vtable的指针事实上是存储在对象的内存空间的。问题出来了,假设构造函数是虚的,就须要通过 vtable来调用,但是对象还没有实例化,也就是内存空间还没有,怎么找...转载 2019-05-08 14:40:10 · 569 阅读 · 0 评论 -
C/C++框架和库
一、值得学习的C语言开源项目Libeventlibev是一个开源的事件驱动库,基于epoll,kqueue等OS提供的基础设施。其以高效出名,它可以将IO事件,定时器,和信号统一起来,统一放在事件处理这一套框架下处理。基于Reactor模式,效率较高,并且代码精简(4.15版本8000多行),是学习事件驱动编程的很好的资源。下载链接:https://github.com/libev转载 2018-02-07 16:37:27 · 481 阅读 · 0 评论