自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(49)
  • 收藏
  • 关注

转载 libcurl第十二课 内存分析

在实际的测试环境中,内存在不断的增长,尽管不是很明显代码申请内存分析struct Curl_multi *Curl_multi_handle(int hashsize, /* socket hash */ int chashsize) /* connection hash */该函数创建了Curl_mut...

2019-09-05 15:07:46 321

转载 libcurl第十一课 使用以及注意事项

经验1)配合Postman能够快速的生成例子代码2)curl_global_init初始化如果调用curl库函数的时候,没有调用curl_global_init进行curl全局变量的初始化,会在curl_easy_init函数中,进行初始化调用3)请求数据的时候,都应该携带上返回报文的格式,否则无法返回有效的数据struct curl_slist *pCurlHeadLis...

2019-09-05 09:48:37 187

转载 libcurl第十课 HTTPS交互

场景 跟乐橙云访问,需要使用HTTPS协议额外配置,否则执行返回CURLE_UNSUPPORTED_PROTOCOL错误1)libcurl版本升级到7.61.0版本2)libcurl项目属性中预编译器添加USE_WINDOWS_SSPI USE_SCHANNEL3)在引用项目的属性中添加额外的静态库Crypt32.lib,Wldap32.lib 代码size...

2019-09-04 09:15:18 366

转载 libcurl第九课 Content-Length的添加机制

场景<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><HTML><HEAD><TITLE>Length Required</TITLE><META HTTP-EQUIV="Conte...

2019-09-03 14:33:16 2158

转载 libcurl第八课 下载Http或FTP图片

场景一 保存成图片代码static size_t WriteFile(void *ptr, size_t size, size_t nmemb, void *stream){ std::ofstream* ofs = (std::ofstream*)stream; size_t nLen = size * nmemb; ofs->write((char*)pt...

2019-09-03 09:49:19 193

转载 libcurl第七课 multipart/formdata表单使用

场景 multipart/form-data是浏览器用表单上传文件的方式。最常见的情境是:在写邮件时,向邮件后添加附件,附件通常使用表单添加,也就是用multipart/form-data格式上传到服务器。Http服务器定义了上传数据的格式,接口地址 http://10.10.10.10:80/restful/personInfo,参数如下:msg:{ "...

2019-09-02 16:19:49 3486

转载 libcurl第六课 x-www-form-urlencoded使用

场景 当HTTP交互中,服务器端指定了application/x-www-form-urlencoded的Content-Type类型,需要对Body报文实体进行url编码。libcurl提供了curl_easy_escape例子static void TestPostOfRestfulInterfaceByUrlEncode(){ CURL *pCurlHand...

2019-09-02 10:31:59 1864

转载 libcurl第五课 Digest Authentication摘要验证使用

场景 在安迅士摄像机网页上,配置系统选项,HTTP/RTSP Password Settings 中, 选择Encrypted only。获取设备的云台状态信息,使用的是摘要认证例子void CAnXunShiConn::TestlibCurlHTTPDegistAuth(){CURL *pCurlHandle = curl_easy_init();cur...

2019-08-31 16:55:51 1154

转载 libcurl第四课 Basic Authentication基本验证使用

场景 在安迅士摄像机网页上,配置系统选项,HTTP/RTSP Password Settings 中, 选择UnEncrypted only。获取设备的云台状态信息代码void CAnXunShiConn::TestlibCurlHTTPBasicAuth(){CURL *pCurlHandle = curl_easy_init();curl_easy_se...

2019-08-30 17:37:22 454

转载 libcurl第三课 HTTP获取天气信息

场景说明 从 t.weather.sojson.com网页中获取天气信息。如果不使用libcurl库,需要实现Transfer-Encoding: chunked分块接收和Content-Encoding: gzip解压,现在提供libcurl实现代码代码size_t WriteResponseBody(void *ptr, size_t size, size_t...

2019-08-29 14:12:15 387

转载 libcurl第二课 编译静态库

1 编译libcurl静态库 确保C/C++页面下代码生成/运行库确保跟解决方案保持一致,确保常规下输出路径和目标文件名称(d)2 C/C++属性页面中的预处理器属性页设置定义_DEBUGBUILDING_LIBCURLDEBUGBUILDCURL_STATICLIBHTTP_ONLYUSE_WINDOWS_SSPIUSE_SCHANNELUSE_WINDOWS_SSP...

2019-08-29 11:26:53 768

转载 libcurl第一课 介绍

1. 参考 libcurl主页https://curl.haxx.se/libcurl/2. libcurl介绍 libcurl是一个免费,易用的客户端传输库,支持DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP,...

2019-08-29 09:14:37 232

转载 Qpid第六课 Qpid-server部署安装

部署JAVA JDK环境添加环境变量JAVA_HOME,值C:\Program Files\Java\jdk1.7.0_01运行异常通过Windows 任务管理器查看java.exe虚拟机PID 4536内存增长到12950Mb通过netstat -ano | findsr "4536"TCP 0.0.0.0:5672 0.0.0.0:0 LISTENING 4536T...

2019-08-20 15:22:47 208

转载 Qpid第五课 消息总线使用经验

qpid-broker服务器采用Java语言版本6.1.4相关资料http://qpid.apache.org/documentation.html问题1)发送到qpid服务器上的消息,如果没有被其他的客户端消费是否一直保存在内存中,可能导致服务器内存耗尽,服务器崩溃,因为服务器的内存一开始就是设置为512MB解决方案: 指定消息的超时时间,如果超时,就删除问题2)发送到qp...

2019-08-20 09:37:30 197

转载 Qpid第四课 异常以及崩溃

1)Virtual host is not activeQpid客户端异常打印2)internal-error: Sasl error: no common mechanism (E:\qpid-cpp-1.36.0\src\qpid\client\windows\SaslFactory.cpp:155)Qpid调用指定的地址不正确3)Qpid客户端崩溃信息问题签名: 问题...

2019-08-19 13:57:59 247

转载 Qpid第三课 动态库内存泄漏测试

CMake点击Configure检测系统是否安装必须的依赖库,点击Generate生成VS2015解决方案,在build目录下生成qpid-cpp.sln,当前编译Qpid的核心原因是Qpid Client客户端调用的DLL,出现内存泄露,因此只需要打开examples文件夹下面的qpidc_examples.sln,进行代码的跟踪调试qpidc_exmaples.sln配置...

2019-08-19 09:17:53 158

转载 Qpid第二课 配置Boost依赖库环境变量

场景Qpid依赖Boost库,一般情况下,使用CMake生成VS解决方案的时候,需要指定Boost头文件和库文件目录,否则出现如下的错误编译提示:Could not find the following Boost libraries: boost_sysytem ,boost_thread解决方案一:在环境变量中新建一个:名为BOOST_ROOT,值为E:\work2...

2019-08-18 11:59:04 560

转载 Qpid第一课 Windows编译C++/ Qpid Client

官网链接 http://qpid.apache.org/components/messaging-api/index.html源码包 qpid-cpp-1.36.0.tar.gz生成解决方案工具 CMake1)浏览编译文档 INSTALL-WINDOWS.txt文档描述了Windows编译Qpid的操作步骤以及注意事项,当前采用的是Microsoft Visual ...

2019-08-18 11:49:51 390

转载 SQLite第四课 sqlite3_set_authorizer使用例子

例子说明可以将一个如下面格式的my_authorizer函数,注册到SQLite语句的解释执行语句当中,并且最先被执行,就像是一个钩子,对sql语句进行一些访问的控制,类似于网络数据包的netfilter。代码#include <iostream>#include "sqlite/sqlite3.h"using namespace std;/*该注册的回调函数...

2019-08-16 15:19:33 704

转载 SQLite第三课 使用例子

1 打开数据库文件 sqlite3* m_db = NULL; int ret = sqlite3_open_v2("test.db", &db, SQLITE_OPEN_READWRITE, NULL); if (ret != SQLITE_OK) { return; }2 如果表不存在,创建表char szCreateUserDataSql[102...

2019-08-16 11:55:09 164

转载 SQLite第二课 下载编译

文件说明下载源码包两个:sqlite-dll-win32-x86-3081101.zip,里面提供了导出sqlite3的函数的文件sqlite3.def主要用于生成LIB文件,确定链接使用sqlite-preprocessed-3081101.zip,提供了源码文件,但是删除shell.c和tclsqlite3.c文件shell.c:提供了main函数入口,可生成sqlite...

2019-08-16 09:18:19 225

转载 SQLite第一课 sqlite3.exe使用教程

1).open 打开数据库例子:sqlite> .open test.db注意:>后面有点2) .tables 查看数据库包含的表名例子:sqlite> .tables注意:>后面有点3) .schema 查看数据库中所有的表的结构例子:sqlite> .schema students注意:>后面有点4) 执行sql语句例子:sqlite&...

2019-08-15 17:38:26 107

转载 SQLite分析SQL As Understood By SQLite

原文:http://www.sqlite.org/lang_explain.html关键字EXPLAIN”或者语句(by the phrase)“EXPLAIN QUERY PLAN”可以放置在SQL语句之前。(关于这句话提供原文,方便后来者观看An SQL statement can be preceded by the keyword “EXPLAIN”...

2019-08-15 15:08:34 133

转载 SQLite 编译期授权回调Compile-Time Authorization Callbacks

原文:https://www.sqlite.org/c3ref/set_authorizer.htmlint sqlite3_set_authorizer(sqlite3*, int(*xAuth)(void*,int,const char*,const char*,const char*,const char*),void *pUserData);该函数将注册一个授...

2019-08-15 14:01:19 132

转载 SQLite 授权动作编码(AuthorizerAction Codes)

本文主要与注册授权回调函数相关:sqlite3_set_authorizer 详细的调用方式,请参考其他的章节!!摘自:https://www.sqlite.org/c3ref/c_alter_table.html/*******************************************3rd ************ 4th ***********/#def...

2019-08-15 11:49:26 307

转载 SQLite 运行时限制(Run-time Limits)

摘自:http://www.sqlite.org/c3ref/limit.htmlint sqlite3_limit(sqlite3*, int id, intnewVal); 该接口允许在连接的过程中(by connection basis),对连接(on a connection)的变量结构(various constructs)进行限制。第一个参数指定了被限制的...

2019-08-15 10:38:33 194

转载 无ROWID优化(The WITHOUT ROWID Optimization)

摘自:https://www.sqlite.org/withoutrowid.html#wtu1.0介绍默认情况下,SQLite数据库中的每一行都会有一个叫做rowid的特殊列,该列唯一标识数据库表中的某一行。然而如果在CREATE TABLE语句的后面添加WITHOUT ROWID关键字,就会禁用rowid这一列。有时候省略掉rowid,能够带来空间和性能上的提升。1.1...

2019-08-15 09:57:56 266

转载 SQLite 递增主键 (Autoincrement)

翻译:https://www.sqlite.org/autoinc.html概述1 自增主键(TheAUTOINCREMENT keyword)占用额外CPU,内存,磁盘空间,并且增加磁盘I/O的开销(disk I/O overhead),所以如无必要,应该禁用。通常情况下是不需要的。2 SQLite中,指定其中的一列的属性为INTEGERPRIMARY KEY,和指定为R...

2019-08-14 14:53:46 880

转载 SQLite编译 (How To Compile SQLite)

摘自:http://www.sqlite.org/howtocompile.htmlAmalgamation Versus Individual Source Files与单个源文件合并SQLite是符合ANSI-C规范的源码库。必须编译成机器码方可使用。本文就是指导如何通过不同的方式对SQLite进行编译。本文不会手把手的教你编译SQLite(step-by-stepr...

2019-08-14 09:45:41 351

转载 SQLite 源码仓库(Repository)

摘自:http://www.sqlite.org/src/doc/trunk/README.md代码仓库包含了完整的SQLite数据库引擎源码。同时包含了一些测试脚本。但是,很多其他的测试脚本和大多数的文档被分开管理(managed separately).1编译(compiling)优先创建目录存放生成的目标文件(build product).强烈推荐,创建的目录和源码目录...

2019-08-14 09:37:47 208

转载 MySQL第七课 left join左连接

场景在查询学生信息中,允许学生宿舍信息为空,如果有获取,没有为空select t.*, cs_sc_studenthostel.name as hostelname from (select cs_sc_student.id as student_id,cs_sc_student.name as studentname,cs_sc_class.name a...

2019-08-13 17:07:56 124

转载 MySQL第六课 主键为字符串大小写不敏感

创建表过程中,指定字段为varchar类型,并且指定为主键,如果已有一条记录为aaaa, 如果这个时候向数据库插入一条AAAA记录,将会提示:1062 - Duplicate entry 'AAAA' for key 'PRIMARY'解决方案1)取消PRIMARY key属性2)采用binary类型,替代varchar ...

2019-08-13 16:50:21 234

转载 FFmpeg ffplay渲染剖析

代码堆栈回溯 ffplayd.exe!video_image_display(VideoState * is) 行 1036 C ffplayd.exe!video_display(VideoState * is) 行 1371 C ffplayd.exe!video_refresh(void * opaque, double * remaining_time) 行 1...

2019-08-13 09:35:23 355

转载 librdkafka和Broker版本兼容

摘自:https://github.com/edenhill/librdkafka/wiki/Broker-version-compatibility自从发布了0.8.0.0.0版本之后,librdkafka支持所有的发布版本的Apache Kafka broker,但不是所有的语法属性都能被broker接受,因为一些语法特性依赖于broker的具体实现当前的默认配置:api...

2019-08-08 16:58:22 1956

转载 error C2059: 语法错误:“常量”解决方案

场景添加海康,宇视SDK对接的头文件和库文件,编译出错提示error C2059: 语法错误:“常量”。显示宇视SDK头文件NetDEVSDK.h中宏定义异常typedef enum tagNETDEV_PASSIVEDECODE_CMD{PASSIVE_DEC_PAUSE = 1, /* 被动解码暂停(仅文件流有效) */PASSIVE_DEC_R...

2019-08-03 11:39:22 16384

转载 Git 代码管理以及问题

libcdio: Existing folder found. Checking for updates...fatal: unable to access 'https://github.com/ShiftMediaProject/libcdio.git/': Failed to connect to github.com port 443: Timed out1 获取历史...

2019-08-02 11:41:00 103

转载 应用程序无法正常启动解决方法

1)应用程序无法正常启动0xc000007bWin32可执行程序在64位操作系统运行的时候,弹出错误解决找不到wpcap.dll,直接在System32文件夹下,拷贝wpcap.dll到系统中,运行出现如下的错误:应用程序无法正常启动0xc000007b分析主观认为System32文件夹存放的就是32位程序依赖的库,SysWOW64存放的就是64位程序依赖的库,其实恰恰相反....

2019-08-02 11:13:53 1205

转载 FFmpeg avformat_open_input函数剖析以及问题

函数调用逻辑avformat_open_input init_input av_probe_input_buffer2 av_probe_input_format3read_header简介avformat_open_input函数初始化AVFormatContext结...

2019-07-30 16:04:57 665

转载 FFmpeg AVFormatContext变量的申请以及释放剖析

当前是用的是3.4版本的FFmpegav_register_all avformat_open_input avformat_find_stream_info avcodec_find_decoder avcodec_open2av_read_frame avcodec_send_packet...

2019-07-30 15:06:45 1141

转载 TortoiseSVN应用说明

1 Blame 查看代码修改的版本号场景 需要查看谁提交的代码,并且之前修改的内容2无法彻底恢复回退到特定版本 场景说明 需要查询某一功能修改的版本代码,然后同步到其他的衍生版本上。或者知晓某一个bug引入的版本代码。基于以上的需求,需要进行版本的回退,这里的回退,是完全的恢复到历史的某一个版本,而不是将当前的修改代码和以前的代码进行合并实践结果 svn只允...

2019-07-30 14:12:21 84

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除