<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[midle110]]></title><description><![CDATA[每天都在进步]]></description><link>https://blog.youkuaiyun.com/midle110</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; midle110]]></copyright><item><title><![CDATA[botan2 编译]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/78525812</link><guid>https://blog.youkuaiyun.com/midle110/article/details/78525812</guid><author>midle110</author><pubDate>Mon, 13 Nov 2017 22:54:08 +0800</pubDate><description><![CDATA[botan2 是不错的加密库，接口简单。
github地址：https://github.com/randombit/botan
1.设置环境变量  
将nmake设置到path里面。
新建INCLUDE 项,随便打开一个vs项目，打开项目属性页---->  vc++目录 ---->  打开 包含目录。
想里面的值一个一个添加进来，记得每个路径之间添加逗号。


新建 LIB 项，]]></description><category></category></item><item><title><![CDATA[树莓派、debian 下安装 phantomjs casperjs]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/50332397</link><guid>https://blog.youkuaiyun.com/midle110/article/details/50332397</guid><author>midle110</author><pubDate>Wed, 16 Dec 2015 20:31:57 +0800</pubDate><description><![CDATA[phantomjs简介
phantomjs实现了一个无界面的webkit浏览器。虽然没有界面，但dom渲染、js运行、网络访问、canvas/svg绘制等功能都很完备，在页面抓取、页面输出、自动化测试等方面有广泛的应用。


对于深层ajax网站的爬虫，phantomjs这种无界面浏览器简直就是这种网站的杀手，虽然效率远非curl ，但结果是妥妥的， 有时候分析js代码实在是头疼。
1.]]></description><category></category></item><item><title><![CDATA[gbk转utf-8  iconv 编码转换]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/46945905</link><guid>https://blog.youkuaiyun.com/midle110/article/details/46945905</guid><author>midle110</author><pubDate>Sat, 18 Jul 2015 21:57:26 +0800</pubDate><description><![CDATA[linux下面有时候 字符需要进行编码转换（爬虫将gbk转为utf-8编码...），一般可以选择iconv函数。
终端下面  输入    
man 3 iconv
得到  iconv函数的使用方法。
个人看习惯了，msdn文档之后感觉linux下面的文档的看的不是那么爽了。
使用iconv函数进行转码，一般使用三个函数：iconv_open  、 iconv  、iconv_close三]]></description><category></category></item><item><title><![CDATA[windows curl ssl版本编译]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/46788701</link><guid>https://blog.youkuaiyun.com/midle110/article/details/46788701</guid><author>midle110</author><pubDate>Tue, 07 Jul 2015 14:27:04 +0800</pubDate><description><![CDATA[编译curl-ssl版本碰到很多坑，这里记录一下。亲手测试，注意版本号！！！！！
1.下载  curl-7.43.0  libssh2-1.3.0  openssl-1.0.0s   ActivePerl5   zlib  nasm
2.  编译openssl，在编译的时候可以参考这边文章http://www.oschina.net/question/54100_138557
编译环境 vs]]></description><category></category></item><item><title><![CDATA[电脑和树莓派之间文件传输]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/46474607</link><guid>https://blog.youkuaiyun.com/midle110/article/details/46474607</guid><author>midle110</author><pubDate>Fri, 12 Jun 2015 18:28:47 +0800</pubDate><description><![CDATA[只要不特意禁止，SSH都会附带SFTP——安全FTP功能，用来做和FTP类似的，上传/下载/管理文件的操作。其实很多FTP软件就“顺便”支持SFTP。
推荐FileZilla。理由和PuTTY用汉化版一样——无需设置直接UTF-8编码，中文名文件上传树莓派不乱码。

只需在“快速连接”中输入：
主机：sftp://192.168.1.102 （换成您的树莓派的IP地址。前面的sftp://]]></description><category></category></item><item><title><![CDATA[linux下远程访问Mysql]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/46418347</link><guid>https://blog.youkuaiyun.com/midle110/article/details/46418347</guid><author>midle110</author><pubDate>Mon, 08 Jun 2015 21:45:46 +0800</pubDate><description><![CDATA[第一步: 激活网络设置
你需要编辑mysql配置文件my.cnf.
通常状况，my.cnf放置于在以下目录：
/etc/mysql/my.cnf (Debian linux)
/etc/my.cnf （Red Hat Linux/Fedora Linux)
/var/db/mysql/my.cnf (FreeBSD)
然后用vi编辑my.cnf，修改内容从以下行：
[mysqld]]]></description><category></category></item><item><title><![CDATA[入手树莓派]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/46317227</link><guid>https://blog.youkuaiyun.com/midle110/article/details/46317227</guid><author>midle110</author><pubDate>Mon, 01 Jun 2015 22:17:50 +0800</pubDate><description><![CDATA[1.最简工具
树莓派（自己淘宝网购）、路由器（需要连接树莓派网口）、电源（5V 2A现在的手机充电器都可以，网上说电流小了会出现问题）、TF卡。这就是最简工具，其余的工具可有可无，值得说一句的就是，不要买什么显示频浪费钱了，因为完全没有必要。
2.安装系统
下载地址：https://www.raspberrypi.org/downloads/
在最简工具下面，建议下载RASPBIAN这个系]]></description><category></category></item><item><title><![CDATA[树莓派 libcurl安装]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/46239771</link><guid>https://blog.youkuaiyun.com/midle110/article/details/46239771</guid><author>midle110</author><pubDate>Fri, 29 May 2015 19:14:37 +0800</pubDate><description><![CDATA[1、安装
由于是树莓派系统，还不知道怎么配置yum，sudo apt-get install libcurl
sudo apt-

2.下载例子

从网上http://curl.haxx.se/libcurl/c/example.html下载了一个allexample.zip文件。使用unzip
 命令

unzip allexample.zip DirectoryExisted]]></description><category></category></item><item><title><![CDATA[vs2013 提交 github]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/40858421</link><guid>https://blog.youkuaiyun.com/midle110/article/details/40858421</guid><author>midle110</author><pubDate>Thu, 06 Nov 2014 11:41:03 +0800</pubDate><description><![CDATA[介绍

　　我承认越是能将事情变简单的工具我越会更多地使用它。尽管我已经知道了足够的命令来使用Github，但我宁愿它被集成到IDE中。在本教程中，我会告诉你使用Visual Studio 2013如何实现。

　　首先创建一个任意类型的项目。在我的例子中，我创建了一个新的Windows Phone 8应用。重述一遍，这无关紧要。按如下显示选择“文件”>“添加到源码控制”。



]]></description><category></category></item><item><title><![CDATA[duilib CPaintManagerUI的WM_PAINT消息]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/39482323</link><guid>https://blog.youkuaiyun.com/midle110/article/details/39482323</guid><author>midle110</author><pubDate>Mon, 22 Sep 2014 22:15:55 +0800</pubDate><description><![CDATA[前段时间研究duilib绘图机制，由于忙了一段时间，感觉又忘记了不少，写个博客，记录一下，免得以后又看源码。直接翻博客就行了。

WM_PAINT 分为两部分，第一部分为：  控件 布局， 第二部分为：界面更新。]]></description><category></category></item><item><title><![CDATA[duilib CTileLayoutUI 控件]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/39156533</link><guid>https://blog.youkuaiyun.com/midle110/article/details/39156533</guid><author>midle110</author><pubDate>Tue, 09 Sep 2014 16:11:47 +0800</pubDate><description><![CDATA[平铺布局在界面布局里面还是使用的比较多的，CTileLayoutUI继承于CContainerUI ， 增加的东西不多，最主要的还是SetPos函数。
通过分析SetPos函数可以得到下面几点：
1.列数自适应
2.子控件高度自适应（每行子控件宽度最高的为基准）
3.子控件宽度至少大于等于子控件宽度


使用就很简单了 ，还是以 listDemo为基础来修改
	
<!--]]></description><category></category></item><item><title><![CDATA[duilib list控件扩展]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/39118201</link><guid>https://blog.youkuaiyun.com/midle110/article/details/39118201</guid><author>midle110</author><pubDate>Sun, 07 Sep 2014 11:48:52 +0800</pubDate><description><![CDATA[对于简单的list控件已经有前辈分析了自带demo的ListRes全过程，duilib DirectUI库里面的一个简单的例子ListDemo，
他分析了listdemo的来龙去脉，这里我只是将个人理解的list分析一下。
由于自带的listdemo不能满足要求，所以必须个人扩展list，通过尝试 发现
1. 列表头禁止拖动情况
这种情况很简单， 配置xml的时候将 表头宽度 和 元素宽度]]></description><category></category></item><item><title><![CDATA[BCB  连接数据库和查询数据]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/38386629</link><guid>https://blog.youkuaiyun.com/midle110/article/details/38386629</guid><author>midle110</author><pubDate>Tue, 05 Aug 2014 16:00:39 +0800</pubDate><description><![CDATA[1.托两个控件： TADOConnection 和 ADOQuery
2.将连个 控件关联。
连接数据库代码：]]></description><category></category></item><item><title><![CDATA[c++  primer 函数传值1]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/38380093</link><guid>https://blog.youkuaiyun.com/midle110/article/details/38380093</guid><author>midle110</author><pubDate>Tue, 05 Aug 2014 10:15:16 +0800</pubDate><description><![CDATA[不看c++ primer  永远不知道自己基础有多差


函数的参数传值一般有两种方式：值传递，引用传递。


值传递有下面两种形式：
void func( int a )
{
//
}

void func1( int *a )
{
//
}
对于 func 和func1都是通过拷贝内存来实现的
第二个 
int m = 10 ;
func1( int *a ) ;
//处理]]></description><category></category></item><item><title><![CDATA[volatile 用处]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/38361097</link><guid>https://blog.youkuaiyun.com/midle110/article/details/38361097</guid><author>midle110</author><pubDate>Sun, 03 Aug 2014 21:18:59 +0800</pubDate><description><![CDATA[使用多线程的时候会用到volatile，volatile告诉编译器]]></description><category></category></item><item><title><![CDATA[MFC调试小技巧]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/38306623</link><guid>https://blog.youkuaiyun.com/midle110/article/details/38306623</guid><author>midle110</author><pubDate>Wed, 30 Jul 2014 20:55:40 +0800</pubDate><description><![CDATA[今天看acl源代码的时候看到一个函数AllocConsole()，百度一下感觉这个函数对于调试很不错，当然对于MFC里面的调试信息，我都是用TRACE打印自己感兴趣的消息的，并且只有在DEBUG里面才会打印，发布版本不会，很适合调试。今天看到这个函数，哪个版本都可以打印，觉得还是挺方便的。
感觉百度百科说的不错，就直接复制过来




AllocConsole 函数

为调用进程分]]></description><category></category></item><item><title><![CDATA[CYYMysql 源码解读 4]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/19908709</link><guid>https://blog.youkuaiyun.com/midle110/article/details/19908709</guid><author>midle110</author><pubDate>Tue, 25 Feb 2014 13:03:58 +0800</pubDate><description><![CDATA[ThreadPool.cpp文件主要是实现线程池，线程池和内存池以及连接池原理都是差不多，一开始申请好了然后需要的时候自己调用就行了。
下面是源码和注释：
#include "stdafx.h"
#include "ThreadPool.h"
//#include "afxtempl.h"
//#include "afxmt.h"

//////////////////////////////]]></description><category></category></item><item><title><![CDATA[CYYMysql 源码解读 3]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/19616137</link><guid>https://blog.youkuaiyun.com/midle110/article/details/19616137</guid><author>midle110</author><pubDate>Fri, 21 Feb 2014 13:32:03 +0800</pubDate><description><![CDATA[Mysqlyy.cpp文件主要实现 mysql数据库连接池。
自己实现了mysql连接池之后，发现连接池就那么回事。系统一开始就申请一大堆东西在那里放着，等着你来用，省的你需要的时候申请，使用完之后又要释放的麻烦。
这里面没有使用内存池，如果一个服务器不是用内存池跑几个月是不是极限了？记得我大二的时候写屏幕实时显示的程序，没用内存池，跑了半个小时就挂掉了。
当然现在有了tcmalloc这等高]]></description><category></category></item><item><title><![CDATA[CYYMysql 源码解读 2]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/19612353</link><guid>https://blog.youkuaiyun.com/midle110/article/details/19612353</guid><author>midle110</author><pubDate>Fri, 21 Feb 2014 11:30:09 +0800</pubDate><description><![CDATA[线程同步类
Lock.h文件和Lock.cpp文件实现比较简单，使用的是临界区，临界区是用户态的线程间切换消耗不是很大，而事件内核对象、信号量、互斥量都是内核态的，调用的时候会切换到内核态，所以尽量使用临界区来同步线程间操作。详细信息可以查看windows核心编程，上面讲解的很详细。
#pragma once
//#include "windows.h"

namespace YYMYSQL
]]></description><category></category></item><item><title><![CDATA[CYYMysql 源码解读 1]]></title><link>https://blog.youkuaiyun.com/midle110/article/details/19611809</link><guid>https://blog.youkuaiyun.com/midle110/article/details/19611809</guid><author>midle110</author><pubDate>Fri, 21 Feb 2014 11:24:05 +0800</pubDate><description><![CDATA[1.unicode.h 文件里面主要是不同字符编码之间的转换。主要是使用这两个函数：MultiByteToWideChar(),WideCharToMultiByte().
2.common.h文件
#pragma once

class QueryBuffer            
{
public:
	void push(char*query)             //将请求 加入列]]></description><category></category></item></channel></rss>