
C++
绝世神棍
111
展开
-
自己动手网络框架(四)--应用层
占坑原创 2021-08-09 11:14:40 · 229 阅读 · 0 评论 -
自己动手网络框架(三)--协议层
占坑原创 2021-08-09 11:13:59 · 282 阅读 · 0 评论 -
自己动手网络框架(二)--通信层
占坑原创 2021-08-09 11:13:20 · 192 阅读 · 0 评论 -
自己动手网络框架(一)--概述
自己做C++开发已经很多年了,C++不像其他语言有很多现成的框架,基本上C++都要自己使用第三方库造轮子。造轮子主要在业务流程、网络、数据库三个方面。今天想先把网络解决了,为以后不用造轮子做准备。 网络分为三层:通信层、协议层、应用层。通信层多种多样,有用操作系统原生网络类实现的,有用第三方网络库实现的(例如Boost.Asio、ZeroMQ等),暂时先用Boost.Asio,这个比较熟悉、简单、跨平台、可以异步,以后不适用了,可以随时换成其他网络库。协议层的话,一般是自定义协议(例如字节...原创 2021-08-09 11:12:36 · 214 阅读 · 0 评论 -
人脸识别(五)
源码位置:https://github.com/comhaqs/face_find.git 分支: develop_libfacedetection之前的人脸检测使用的是opencv的人脸检测功能,识别率低,基本无法使用。网上查找的时候有几个库,一个是MTCNN相关库,使用的是鹅厂的ncnn,不过看issues里是说ncnn只针对arm处理器做了优化,PC端效率低,所以就没有测试。另一个是l...原创 2020-01-08 13:56:10 · 385 阅读 · 0 评论 -
人脸识别(四)
源码位置:https://github.com/comhaqs/face_find.git 分支:develop_face_recognitionopencv的人脸识别模块现在是放在另外一个库opencv_contrib里,需要编译到opencv里才可以使用,故这里将opencv和opencv_contrib的源码都下下来,opencv源码:https://github.com/openc...原创 2020-01-07 23:27:43 · 368 阅读 · 0 评论 -
人脸识别(三)
源码位置:https://github.com/comhaqs/face_find.git 分支:develop_step2第二阶段,通过opencv实现人脸识别。opencv的Mat类只支持BGR模式图像,所以需要进行图像转换。这里ffmpeg解码出来是AV_PIX_FMT_YUV420P,先转换成AV_PIX_FMT_BGR24以便opencv进行人脸识别和人脸检测。完成并标记人脸后,...原创 2020-01-07 14:32:18 · 442 阅读 · 0 评论 -
人脸识别(二)
源代码路径:https://github.com/comhaqs/face_find.git 分支develop_step1第一阶段得使用ffmpeg解码视频流并在qt上显示,这里使用的是一段电视剧视频。Qt上是使用QLabel控件显示QImage对象,但QImage对象只识别AV_PIX_FMT_RGBA图像数据,我手上的视频解码后是YUV420P数据,需要使用sws_scale函数转...原创 2020-01-07 09:41:36 · 360 阅读 · 0 评论 -
兼职程序员一般可以从什么平台接私活?
https://blog.youkuaiyun.com/xiyue001/article/details/102816596转载 2019-11-08 14:09:01 · 575 阅读 · 1 评论 -
C/C++后端-服务端开发技术博文分类汇总
原帖地址:https://blog.youkuaiyun.com/ZYZMZM_/article/details/102717590转载 2019-10-29 15:57:06 · 438 阅读 · 0 评论 -
GB28181开发(三) --boost编译
从boost网站上下载源码,我使用的是1.71版本,可以直接从下面链接下载https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.gz解压后进入目录,执行 ./bootstrap.sh 生成b2文件[com@bogon boost_1_71_0]$ ./bootstrap.sh 执行boo...原创 2019-10-23 11:06:07 · 1153 阅读 · 1 评论 -
SQL SERVER连接字符串
原贴地址:https://www.connectionstrings.com/sql-server/.NET Framework Data Provider for SQL ServerStandard SecurityServer=myServerAddress;Database=myDataBase;User Id=myUsername;Pass转载 2016-12-08 14:44:30 · 1613 阅读 · 0 评论 -
MySql连接字符串
原贴地址:https://www.connectionstrings.com/mysql/MySQL Connector/NetStandardServer=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;MySQLSpecifying TCP转载 2016-12-08 14:45:58 · 6374 阅读 · 0 评论 -
SqlLite连接字符串
原贴地址:https://www.connectionstrings.com/sqlite/SQLite.NETBasicData Source=c:\mydb.db;Version=3;Version 2 is not supported by this class library.SQLiteIn-Memo转载 2016-12-08 14:47:28 · 10624 阅读 · 0 评论 -
MFC动态库使用boost::thread运行时报错的问题
在MFC动态库中,如果包含有boost::thread的相关文件,可能会导致编译时没问题,运行时报错,报错位于ASSERT(AfxGetThread() == NULL)。百度得知,应该是静态链接boost::thread库时,boost::thread库会修改相关函数指针,具体见网页:http://blog.youkuaiyun.com/xiao3131/article/details/39207493。网原创 2016-12-26 10:36:35 · 1822 阅读 · 0 评论 -
otl开发踩坑
1、如果使用OCI方式连接ORACLE数据库,因为会引用ORACLE相关头文件,所以当程序使用了BOOST库时,有可能会出现下面提示错误信息:1>d:\boost_1_63_0\boost\asio\detail\socket_option.hpp(33): error C2332: “class”: 缺少标记名1>d:\boost_1_63_0\boost\asio\detail\sock原创 2017-05-16 11:35:42 · 934 阅读 · 0 评论 -
远程调试软件
项目开发中总会碰见现场软件有问题,需要调试。但有时候现场服务器不允许安装VS工具,或是不方便把源代码放到现场的服务器上,或是需要使用现场的某些设备,导致无法使用现场的环境进行远程调试,公司环境又无法完全模拟现场环境。故想开发一款远程调试代理软件,能通过某台外网服务器做中转,实现远程调试。 图1 常规远程调试模式 图2 目标远程调试模式原创 2018-01-09 09:46:00 · 2193 阅读 · 0 评论 -
[combuffer系列]框架设想
开源地址:https://gitee.com/comhaqs/combuffer.git 目前项目需要使用RPC框架,大概查看了几个开源框架,要么只提供通信框架(zeromq、nanomsg),要么对运行环境有要求,不能适应项目要求(brpc、grpc)。考虑提高技术水平和项目要求,计划自己写一套RPC框架。原则如下: 1、尽量使用成熟稳定、使用面广的第三方库,毕竟自己原创 2018-01-16 09:53:38 · 359 阅读 · 0 评论 -
[combuffer系列]rpc层(一)
开源地址:https://gitee.com/comhaqs/combuffer.git protobuffer只定义了数据内容,需要自己定义数据帧格式,这里参考了网上大家的做法,以及pomelo的调用思路 数据帧定义数据区长度是指控制码+路由+数据的长度;校验码采用CRC校验,校验区为控制码+路由+数据。控制码定义如下:其中请求类型原创 2018-01-16 10:51:20 · 371 阅读 · 0 评论 -
Linux环境下的C++开发(二)
1、安装cmake(以cmake-3.12.0.tar.gz源码安装为例)先去官网https://cmake.org/download/上下载cmake源码。下载后解压编译,gmake install需要root权限tar zxvf cmake-3.12.0.tar.gzcd cmake-3.12.0./bootstrapgmakegmake install2、安装qt...原创 2018-07-30 13:53:42 · 5310 阅读 · 1 评论 -
Linux环境下的C++开发(三)
qtCreator对cmake支持还不是那么好,在项目中无法通过右键添加源文件,只有在CMakeList.txt中显示添加的文件才会在项目列表中显示出来。在CMakeList.txt中添加如下代码,就能把项目下的所有.h和.cpp的文件都在左边项目列表中显示出来file(GLOB files_list ./*.cpp ./*.h)add_custom_target(files_list SO...原创 2018-07-30 14:02:54 · 3037 阅读 · 0 评论 -
流媒体开发(一)
最近想学习下流媒体相关的开发技术,所以计划把相关的研究内容写到博客上,方便自己和大家。学习技术最好的方式是项目驱动,所以打算弄一个项目,用来推动自己学习。项目需求如下: 1、能接入一类网络监控摄像头,摄像头支持rtsp等协议,采用服务端方式提供视频流。 2、能接入二类网络摄像头,摄像头由于处在内网,只能采取客户端方式推送视频流, 3、接入的视频流都转换成统一的...原创 2019-07-24 11:31:42 · 6258 阅读 · 0 评论 -
将git版本信息编译进程序
有时候我们需要在程序里打印git版本信息,方便源码追踪。有两种方式,一种是通过命令行使用git生成版本信息相关头文件,编译的时候引用这个头文件。另一个种是生成git版本信息宏,源码里直接调用,这里以第二种为例叙说。编译环境使用cmake,在Linux平台,其他环境也可以参照。 在cmake文件里定义如下:execute_process(COMMAND git log -1 ...原创 2019-07-23 14:09:41 · 1222 阅读 · 0 评论 -
VS编译utf8源码时的问题
在VS里编译utf8格式的源代码时,有时会出现以下错误:E:\Projects\back_mdfactory\src\service_context.cpp(33): error C2001: 常量中有换行符E:\Projects\back_mdfactory\src\service_context.cpp(33): fatal error C1057: 宏扩展中遇到意外的文件结束原因是...原创 2019-09-27 11:40:39 · 1988 阅读 · 0 评论 -
win32简单串口操作
bool init(){ HANDLE hCom=CreateFile("COM1",//COM1口 GENERIC_READ|GENERIC_WRITE, //允许读和写 0, //独占方式 NULL, OPEN_EXISTING, //打开而不是创建 0, //同步方式 NULL); if(hCom==INVALID_HANDLE_VALUE)原创 2012-12-20 19:09:39 · 664 阅读 · 0 评论 -
Oracle连接字符串
原贴地址:https://www.connectionstrings.com/oracle/.NET Framework Data Provider for OracleStandardData Source=MyOracleDB;Integrated Security=yes;This one works only with Oracl转载 2016-12-08 14:42:14 · 6138 阅读 · 0 评论 -
Boost异步编程退出时报错的问题
用Boost::asio的异步编程,有时退出时会莫名其妙报错,Debug一看,是析构的时候数据非法了,看编程代码,的确是按照网上的教程写的,不过不同的是我用智能指针代替了原始指针,并且Socket和Service都是智能指针。原来的定义如下:virtual void handle_acceptor(const boost::system::error_code& ec, SocketPtr p原创 2015-10-16 10:54:57 · 932 阅读 · 0 评论 -
C++经典书籍解读
原帖地址:http://www.cnblogs.com/xuyuan77/archive/2008/02/23/1075516.html C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。 然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也转载 2013-06-09 14:25:03 · 569 阅读 · 0 评论 -
[转]ODBC连接字符串大全(MySQL)
原帖地址:http://www.connectionstrings.com/mysql MySQL Connector/NetType .NET Framework Class LibraryUsage MySql.Data.MySqlClient.MySqlConnectionManufacturer MySQLMore info and class libr转载 2013-02-28 15:53:58 · 5637 阅读 · 0 评论 -
[转]ODBC连接字符串大全(Oracle)
原帖地址:http://www.connectionstrings.com/oracle Oracle Data Provider for .NET / ODP.NETType .NET Framework Class LibraryUsage Oracle.DataAccess.Client.OracleConnectionManufacturer Oracle转载 2013-02-28 15:51:49 · 4128 阅读 · 0 评论 -
[转]ODBC连接字符串大全(SQL SERVER 2000)
原帖地址:http://www.connectionstrings.com/sql-server Connection strings for SQL Server 2000, 7.0.NET Framework Data Provider for SQL ServerType .NET Framework Class LibraryUsage Sys转载 2013-02-28 15:24:51 · 4029 阅读 · 0 评论 -
[转]windows程序员进阶系列:《软件调试》之O--- WinDbg使用介
原帖地址:http://blog.youkuaiyun.com/ithzhang/article/details/8630429 windows程序员进阶系列:《软件调试》之O--- WinDbg使用介绍 拥有一个顺手的武器是每一个武林高手梦寐以求的。对于windows程序员来说,WinDbg调试器就是我们的武器。熟练使用调试器能大大提高我们的转载 2013-03-06 09:07:40 · 1289 阅读 · 0 评论 -
C++程序设计之四书五经(转载)
原帖地址:http://bbs.chinaunix.net/thread-321401-1-1.html C++程序设计之四书五经(上篇)C++是一门广泛用于工业软件研发的大型语言。它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值。和C语言一样,C++已经在许多重要的领域大获成功。然而,一个不可否认的现实是,在低阶程序设计领域,C++挤压着C同时也在承受着转载 2012-05-22 16:46:01 · 771 阅读 · 0 评论 -
图说UML中的六大关系(转帖)
UML中原来有几个概念分不清楚,刚好网上有个文章写了这几个概念的区别。 原文地址:http://www.uml.org.cn/oobject/201006114.asp UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,一看之下,清晰转载 2012-02-10 15:26:40 · 484 阅读 · 0 评论 -
以原始套接字的方式 截获流经本机网卡的IP数据包(转)
从事网络安全的技术人员和相当一部分准黑客(指那些使用现成的黑客软件进行攻击而不是根据需要去自己编写代码的人)都一定不会对网络嗅探器(sniffer)感到陌生,网络嗅探器无论是在网络安全还是在黑客攻击方面均扮演了很重要的角色。通过使用网络嗅探器可以把网卡设置于混杂模式,并可实现对网络上传输的数据包的捕获与分析。此分析结果可供网络安全分析之用,但如为黑客所利用也可以为其发动进一步的攻击提供有价值的信息转载 2009-06-21 12:00:00 · 1116 阅读 · 2 评论 -
Wireshark插件的编写(转帖)
原文地址:http://blog.tianya.cn/blogger/post_show.asp?BlogID=2338564&PostID=19226926 所谓插件技术,就是在程序的设计开发过程中,把整个应用程序分成宿主程序和插件两个部分,宿主程序与插件能够相互通信,并且,在宿主程序不变的情况下,可以通过增减插件或修改插件来调整应用程序的功能。运用插件技术可以开发出伸缩性良好、便转载 2012-02-07 16:34:35 · 1710 阅读 · 0 评论 -
Wireshark插件开发小结(转帖)
原文地址:http://blog.youkuaiyun.com/qgw_2000/article/details/5327519 以下是针对Windows平台的插件开发,其它平台非常类似。 1.开发环境准备 1).下载Source code 使用TortoiseSVN,checkout代码(http://anonsvn.wireshark.org/wireshark/t转载 2012-02-07 16:36:00 · 1726 阅读 · 1 评论 -
google ProtoBuf开发者指南
原帖地址: http://www.cnblogs.com/foxhengxing/archive/2010/08/10/1796165.html [转载] google ProtoBuf开发者指南google ProtoBuf开发者指南ProtoBuf开发者指南 译者: gashero 目录 1 概览 1.1 什么是protocol bu转载 2013-08-12 13:38:37 · 747 阅读 · 0 评论 -
cocos2d-x编译android 自动添加文件到android.mk文件
原帖地址:http://www.iskyc.com/post/22.html cocos2d-x编译android 自动添加文件到android.mk文件android.mk1234567891011121314151617181920212223转载 2013-09-26 16:14:04 · 1578 阅读 · 1 评论 -
在VS2010中使用Git【图文】
原帖地址:http://www.cnblogs.com/oec2003/archive/2012/11/13/2768860.html 在之前的一片博客《Windows 下使用Git管理Github项目》中简单介绍了在Windows环境中使用Git管理Github项目,但是是使用命令行来进行操作的,本文将简单介绍下在VS2010中怎样使用Git,并来管理Github上的项目。准备转载 2014-01-21 10:23:37 · 584 阅读 · 0 评论