C++
文章平均质量分 94
贝壳里的沙
毕业于中国石油大学软件工程系,先后就职于北京方正集团、北京用友财务软件股份有限公司、广东安居宝数码科技股份有限公司、广东东道信息科技有限公司,拥有10年以上的开发管理经验,擅长安防相关的音视频编技术应用,在大数据分析处理等方面有丰富的经验和独到见解。
展开
-
rtsp协议转HLS之web端无插件播放
跨平台的实时视频播放服务,通过将传统的rtsp安防协议转换为HLS协议,实现实时视频点播和录像录制播放原创 2022-07-12 20:52:19 · 3855 阅读 · 1 评论 -
Windows音频采集及播放之wave库使用及实现
一、音频简介关于音视频的采集可能有很多文章,也有很多分方式,实现方式有Core AudioCore Audio只可以在Vista以上(包括Vista)的操作系统中才能使用,主要用来取代Wave系列API函数和DirectSound,Core Audio实现的功能也比较强大,能实现对麦克风的采集、声卡输出的采集、控制声音的播放。DirectSoundDirectSound库是D3D系列库中的一个关于声音采集和播放的库,它是一个COM组件,对于初学者比较抽象。Wave库Wave系列的API函数主原创 2020-10-11 13:30:58 · 2105 阅读 · 0 评论 -
AES加解密之C++实现
一、AES介绍AES,高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥,具体的加密流程如下图:下面简单介绍下各个部分的作用与意义:明文P没有经过加密的数据。密钥K用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络传输给原创 2020-10-11 11:45:42 · 13263 阅读 · 2 评论 -
windows下文本转语音TTS库封装
一、文本转语音实现本文提及的文本转语音库其实很多年前写的库,最近有才时间整理才将对应库整理成文章供各位网友参考。其实在windows下自带了文本转语音以及语音识别的功能,这里由于项目中需要将报警文本信息使用语音形式转化出来,所以这里仅仅只介绍文本转语音的使用。windows下我们将文本转语音使用的就是windows自带的COM组件,也就是TTS库,为了方便使用我将语音转文本的库封装成一个Dll库,目的也是为了后续组件化和模块化后续系统的功能,该封装库仅有三个功能:(1)语音库的初..原创 2020-10-11 10:59:26 · 2160 阅读 · 0 评论 -
boost网络串口通信库
一、前言前面我写了一篇《boost开发网络库》一文,该文章介绍了使用boost库开发一个高效、稳定的网络通信库,其中用到了c++准标准库boost的asio网络通信模块,本文将要讲的是使用boost开发usb串口,正好也用到了asio,我之前文章中说过asio不仅仅包含网络通信,还包括串口,接下来我将带大家讲解使用boost库实现串口的通信。(当然,我们完全可以使用windows本地api实现类似功能)串口是一种非常通用的设备通信的协议(不要与通用串行总线Universal Serial Bus(USB原创 2020-09-15 14:34:06 · 1595 阅读 · 0 评论 -
关于C++使用libcurl提交表单方式上传文件时提交表单参数[同HTML表单]
C++与Java后台交互,避免不了使用HTTP协议,这时候对于C++来说libcurl就派上用场了,简单的参数传递比较简单,涉及到文件上传和下载的时候就稍微复杂点了,具体示例如下:int http_post_file(const char *url, const char *user, const char *pwd, const char *filename){转载 2017-08-16 09:39:36 · 3591 阅读 · 0 评论 -
VS2015下解决:无法解析的外部符号 __imp___vsnprintf 及__iob_func
1、解决:无法解析的外部符号 __imp___vsnprintf 在vs2015工程选项,链接器附加依赖项里面添加 legacy_stdio_definitions.lib 即可。出现这个问题的原因是 vs2015 默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数。2、解决:无法解析的外部符号__iob_func在使用 ...转载 2018-02-27 11:55:59 · 2068 阅读 · 0 评论 -
boost库编译选项(windows)
boost库编译过程如下:1、下载boost库(本实例用的boost1.63)并解压2、进入boost库解码目录,执行bootstrap.bat,生成b2或bjam可执行编译工具;3、利用b2或bjam编译boost库(进入cmd命令行,然后进入boost解码目录--b2工具所在目录) 在不特定指定编译选项情况下,boost是编译成动态库,32bit,默认安装在bo...原创 2018-07-22 14:42:31 · 8681 阅读 · 1 评论 -
关于gsoap工具soapcpp2.exe无法通过头文件生成wsdl接口描述语言文件的原因
wsdl是通过wsdl文件作为不同应用的通信接口,所以如何生成wsdl语言很重要,但是很多时候我们发现自己编写的头文件通过gsoap工具soapcpp2.exe从头文件中无法正常生成对应的wsdl语言,几经寻找,终于发现: 通过对应头文件.h生成客户端或服务器代理代码的时候,对应的头文件中的注释描述信息和对外接口都需要有规定的格式才能正确生成wsdl语言文件。原创 2016-05-23 13:54:52 · 2412 阅读 · 0 评论 -
第一次使用Direct3D
生命不止,奋斗不息,我无法让自己的思想停留下来,无法忍受自己虚度光阴,无所事事,我一直不看好满足现状,不求进取的人,也正因为如此,我一直在使自己变得完美,只要不会,只要有机会学,当然只要有时间,我都会学一些C++相关的技术来提升自己。 我是一个不玩游戏的人,也是一个讨厌游戏的人,至今,我只玩了两个游戏,一个是金刚、一个类似于反恐的枪击游戏,虽然不爱玩游戏,但是我敬佩那些做游戏的人,他原创 2016-06-05 17:46:18 · 1246 阅读 · 0 评论 -
duilib初始化无法获取控件位置(所有位置都为0)
duilib中,我们往往在InitWindow虚函数中获取指定控件位置,调整控制其他控件大小等,但是使用getpos获取的矩形位置为0,所有我们没法在其中最我们自己想要的操作,经过duilib的调试跟踪发现:在窗口创建后第一次刷屏WM_Paint的时候,第一次调整pRoot根节点容器的所有子控件位置就在这个时候;而虚函数InitWindow是在Oncreate中调用的,所有在InitWindow的原创 2016-07-11 14:28:03 · 3734 阅读 · 0 评论 -
windows命令行文件中获取bat文件所在目录相关路径
批处理命令获取当前盘符和当前目录%~d0 是当前盘符%cd% 是当前目录可以用echo %cd%进行打印测试以下例子是命令行编译Visual Studio编写的程序:@echo offset b=%cd% //将当前目录保存到参数b中,等号前后不要有空格C:cd program filescd microsoft visual studio cd com原创 2016-06-21 14:15:21 · 23717 阅读 · 0 评论 -
C++ 编写WebService服务
大家好,很久没有写相关的技术文章了,最近一直考虑一个问题,就是对于一个老C++程序员来说,后续路程如何走下去:该学写什么,了解写什么?想了想,突然注意到最近公司接到的客户需求:将监控行业相关数据以webservice接口形式提供给外部调用。之前在了解onvif协议的时候,顺便了解过gsoap工具和soap协议,但是不深也未曾亲自实现过,想想在北京的时候一个同事在我面前提过webservice,说功原创 2016-03-19 21:14:48 · 16532 阅读 · 9 评论