- 博客(78)
- 资源 (30)
- 收藏
- 关注
原创 botan2 编译
botan2 是不错的加密库,接口简单。github地址:https://github.com/randombit/botan1.设置环境变量 将nmake设置到path里面。新建INCLUDE 项,随便打开一个vs项目,打开项目属性页----> vc++目录 ----> 打开 包含目录。想里面的值一个一个添加进来,记得每个路径之间添加逗号。新建 LIB 项,
2017-11-13 22:54:08 3202
原创 树莓派、debian 下安装 phantomjs casperjs
phantomjs简介phantomjs实现了一个无界面的webkit浏览器。虽然没有界面,但dom渲染、js运行、网络访问、canvas/svg绘制等功能都很完备,在页面抓取、页面输出、自动化测试等方面有广泛的应用。对于深层ajax网站的爬虫,phantomjs这种无界面浏览器简直就是这种网站的杀手,虽然效率远非curl ,但结果是妥妥的, 有时候分析js代码实在是头疼。1.
2015-12-16 20:31:57 3346
原创 gbk转utf-8 iconv 编码转换
linux下面有时候 字符需要进行编码转换(爬虫将gbk转为utf-8编码...),一般可以选择iconv函数。终端下面 输入 man 3 iconv得到 iconv函数的使用方法。个人看习惯了,msdn文档之后感觉linux下面的文档的看的不是那么爽了。使用iconv函数进行转码,一般使用三个函数:iconv_open 、 iconv 、iconv_close三
2015-07-18 21:57:26 5127
原创 windows curl ssl版本编译
编译curl-ssl版本碰到很多坑,这里记录一下。亲手测试,注意版本号!!!!!1.下载 curl-7.43.0 libssh2-1.3.0 openssl-1.0.0s ActivePerl5 zlib nasm2. 编译openssl,在编译的时候可以参考这边文章http://www.oschina.net/question/54100_138557编译环境 vs
2015-07-07 14:27:04 2466
转载 电脑和树莓派之间文件传输
只要不特意禁止,SSH都会附带SFTP——安全FTP功能,用来做和FTP类似的,上传/下载/管理文件的操作。其实很多FTP软件就“顺便”支持SFTP。推荐FileZilla。理由和PuTTY用汉化版一样——无需设置直接UTF-8编码,中文名文件上传树莓派不乱码。只需在“快速连接”中输入:主机:sftp://192.168.1.102 (换成您的树莓派的IP地址。前面的sftp://
2015-06-12 18:28:47 59251 3
转载 linux下远程访问Mysql
第一步: 激活网络设置你需要编辑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]
2015-06-08 21:45:46 625
原创 入手树莓派
1.最简工具树莓派(自己淘宝网购)、路由器(需要连接树莓派网口)、电源(5V 2A现在的手机充电器都可以,网上说电流小了会出现问题)、TF卡。这就是最简工具,其余的工具可有可无,值得说一句的就是,不要买什么显示频浪费钱了,因为完全没有必要。2.安装系统下载地址:https://www.raspberrypi.org/downloads/在最简工具下面,建议下载RASPBIAN这个系
2015-06-01 22:17:50 1428
原创 树莓派 libcurl安装
1、安装由于是树莓派系统,还不知道怎么配置yum,sudo apt-get install libcurlsudo apt-2.下载例子从网上http://curl.haxx.se/libcurl/c/example.html下载了一个allexample.zip文件。使用unzip 命令unzip allexample.zip DirectoryExisted
2015-05-29 19:14:37 4286
转载 vs2013 提交 github
介绍 我承认越是能将事情变简单的工具我越会更多地使用它。尽管我已经知道了足够的命令来使用Github,但我宁愿它被集成到IDE中。在本教程中,我会告诉你使用Visual Studio 2013如何实现。 首先创建一个任意类型的项目。在我的例子中,我创建了一个新的Windows Phone 8应用。重述一遍,这无关紧要。按如下显示选择“文件”>“添加到源码控制”。
2014-11-06 11:41:03 5016
原创 duilib CPaintManagerUI的WM_PAINT消息
前段时间研究duilib绘图机制,由于忙了一段时间,感觉又忘记了不少,写个博客,记录一下,免得以后又看源码。直接翻博客就行了。WM_PAINT 分为两部分,第一部分为: 控件 布局, 第二部分为:界面更新。
2014-09-22 22:15:55 5029
原创 duilib CTileLayoutUI 控件
平铺布局在界面布局里面还是使用的比较多的,CTileLayoutUI继承于CContainerUI , 增加的东西不多,最主要的还是SetPos函数。通过分析SetPos函数可以得到下面几点:1.列数自适应2.子控件高度自适应(每行子控件宽度最高的为基准)3.子控件宽度至少大于等于子控件宽度使用就很简单了 ,还是以 listDemo为基础来修改 <!--
2014-09-09 16:11:47 11636 3
原创 duilib list控件扩展
对于简单的list控件已经有前辈分析了自带demo的ListRes全过程,duilib DirectUI库里面的一个简单的例子ListDemo,他分析了listdemo的来龙去脉,这里我只是将个人理解的list分析一下。由于自带的listdemo不能满足要求,所以必须个人扩展list,通过尝试 发现1. 列表头禁止拖动情况这种情况很简单, 配置xml的时候将 表头宽度 和 元素宽度
2014-09-07 11:48:52 14335 3
原创 c++ primer 函数传值1
不看c++ primer 永远不知道自己基础有多差函数的参数传值一般有两种方式:值传递,引用传递。值传递有下面两种形式:void func( int a ){//}void func1( int *a ){//}对于 func 和func1都是通过拷贝内存来实现的第二个 int m = 10 ;func1( int *a ) ;//处理
2014-08-05 10:15:16 767
原创 MFC调试小技巧
今天看acl源代码的时候看到一个函数AllocConsole(),百度一下感觉这个函数对于调试很不错,当然对于MFC里面的调试信息,我都是用TRACE打印自己感兴趣的消息的,并且只有在DEBUG里面才会打印,发布版本不会,很适合调试。今天看到这个函数,哪个版本都可以打印,觉得还是挺方便的。感觉百度百科说的不错,就直接复制过来AllocConsole 函数为调用进程分
2014-07-30 20:55:40 2266
原创 CYYMysql 源码解读 4
ThreadPool.cpp文件主要是实现线程池,线程池和内存池以及连接池原理都是差不多,一开始申请好了然后需要的时候自己调用就行了。下面是源码和注释:#include "stdafx.h"#include "ThreadPool.h"//#include "afxtempl.h"//#include "afxmt.h"//////////////////////////////
2014-02-25 13:03:58 819
原创 CYYMysql 源码解读 3
Mysqlyy.cpp文件主要实现 mysql数据库连接池。自己实现了mysql连接池之后,发现连接池就那么回事。系统一开始就申请一大堆东西在那里放着,等着你来用,省的你需要的时候申请,使用完之后又要释放的麻烦。这里面没有使用内存池,如果一个服务器不是用内存池跑几个月是不是极限了?记得我大二的时候写屏幕实时显示的程序,没用内存池,跑了半个小时就挂掉了。当然现在有了tcmalloc这等高
2014-02-21 13:32:03 1157
原创 CYYMysql 源码解读 2
线程同步类Lock.h文件和Lock.cpp文件实现比较简单,使用的是临界区,临界区是用户态的线程间切换消耗不是很大,而事件内核对象、信号量、互斥量都是内核态的,调用的时候会切换到内核态,所以尽量使用临界区来同步线程间操作。详细信息可以查看windows核心编程,上面讲解的很详细。#pragma once//#include "windows.h"namespace YYMYSQL
2014-02-21 11:30:09 1010
原创 CYYMysql 源码解读 1
1.unicode.h 文件里面主要是不同字符编码之间的转换。主要是使用这两个函数:MultiByteToWideChar(),WideCharToMultiByte().2.common.h文件#pragma onceclass QueryBuffer {public: void push(char*query) //将请求 加入列
2014-02-21 11:24:05 799
原创 mysql c api简单连接池
连接池为了解决频繁的创建、销毁所带来的系统开销。简而言之,就是 自己先创建一定量的连接,然后在需要的时候取出一条连接使用。当然如果你只有一个线程连接数据库,而且不是实时返回结果,那么你完全不必用连接池。想一下网络大型游戏服务器,你就明白为什么需要连接池了。自己敲代码写了一个简单的类,实现连接池,虽然没有mysql++那么强大,但是还是自己有收获。Csqlpool.h 头
2014-02-20 17:32:46 5594 4
原创 tcmalloc编译
linux环境:1.下载地址:http://code.google.com/p/gperftools/downloads/list2. 解压:sudo tar -zxvf ******.tar.gz 3. 安装组件 sudo ./configure 4. 安装 sudo make&&make installwindows环境:直接打开工程,编译。使用的时候改动
2014-02-14 14:35:36 2034
原创 闲来无事,仿了一个百度杀毒主界面
15号就去深圳找工作了,现在课程基本上上完了,但是有一个老师硬是要我们把实验搞完才能离开,这几天没事,画了两天仿了百度杀毒主界面,就一个窗口,第一次搞仿,和论坛里面的大神是没法比的。里面还有很多东西需要写,感觉MFC画界面好麻烦,做到这里就不做了,最下面是代码。下面是截图代码在这里:http://download.csdn.net/detail/midle110/652
2013-11-08 17:02:07 1862
原创 传奇源码分析---框架
最近看游戏源码,对于大一点的源码,完全不知道怎么开始,太庞大了,网狐的源码都达到了1G多了,vc6.0打开直接卡死,不得不说vs2010还是很不错的。大的源码看不懂,最后去看最小的源码,传奇服务端源码。
2013-10-31 14:09:18 11450 4
转载 解决无法添加Activex控件变量的错误
在使用VC做开发时会经常使用到Activex控件,在插入Activex控件再添加控件变量时有时会遇到“ ...... \VC\VCWizards\CodeWiz\MFC\Variable\HTML\2052\default.htm”文件1211或者1212行缺少对象或者对象为null的错误。今天终于找到了解决这一错误的方法。首先在注册表中搜索所使用的动态库或者.ocx文件,比如mstscax.
2013-05-15 15:12:16 3538
原创 deque iterator not dereferencable 问题
STL里面出现这个问题,纠结了半天,不知道什么原因。当然deque iterator not dereferencable。这个是deque出问题,vector、list也可以出问题的。也有很多人提问,但是回答的人很少。最后还是找到一些答案了。出现这种情况有两种可能。第一:访问某一个不存在的位置。比如:#include#include using namespac
2012-11-29 14:04:11 14551
原创 线程同步--信号量内核对象
信号量同步能够很好的解决线程执行顺序。HANDLE CreateSemaphore(LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, LONG lMaximumCount, LPCTSTR lpName ); 第一个参数第四个参数和前面事件内核对象的一样。第二个参数:表示当前可用资源数量。为0的时
2012-11-20 16:52:35 917
原创 线程同步--事件内核对象
现实程序中有时候我们需要对线程执行顺序更加严格的要求。前面讲到的关键代码段就不适用了。关键代码段最大的有点就是用户在用户态执行就可以了,不需要进入内核状态。从而减少了进入内核所用的时间。所以如果如果能够使用关键代码段就使用关键代码段。最后选择内核对象进行同步!事件内核对象是内核对象同步的其中一种。解释一下内核对象的状态。内核对象有两种状态:已通知状态和未通知状态。通
2012-11-19 21:45:51 1534
原创 TCP粘包问题
最近需要用TCP传输大量数据,但是中间出现了一些问题。又问本人菜鸟,什么都是自己摸索!其中就出现了粘包问题。粘包问题可以看看下面的链接,下面讲解的很详细粘包问题链接:点击打开链接 而我发送的大量数据包,每次发送的长度不相等。微软对TCP发送的数据优化算法还是有用的,可以不需要设置“发送不延迟”。所以就在每次发送数据包的开头定义一个定长大小的结构体,里面描述一些
2012-11-18 21:56:03 973
原创 线程同步--关键代码段(三)
前面讲述了如何使用关键代码段。但是关键代码段还有一些不为人知的秘密,也是多数程序员忽略的东西,特别是在多核cpu上面,我们必须知道的东西。下面是《windows核心编程》这本书里面的一段话。插一句话,搞windows编程的此书必看,本人正在读中,感觉就是醍醐灌顶!当线程试图进入另一个线程拥有的关键代码段时,调用线程就立即被置于等待状态。这意味着该线程必须从用户方式转入内核方式(大约
2012-11-15 19:44:45 1491
原创 线程同步--关键代码段(二)
在我们接触到的多线程书籍里面,提到最多的就是线程同步问题了。但是,我们看到最多的例子也是对一个临界资源的访问。但是当我们自认为感觉靴子很好的时候,问题出现了,怎么才能够使我们让线程按照一定的顺序访问。其实我们学习的东西就已经可以使用了,只是我们受到书籍的影响导致我们写不出来而已。当然,学习多线程,操作系统学习是避免不了的!下面就是我写的代码主要实现一个功能:A和B必须同
2012-11-14 09:06:57 929
原创 STL里面的sort()函数使用结构体
当用sort()想对结构体进行排序的时候,这时候就需要自己写一个排序函数了 写这个是因为自己好久没用STL里面的sort()函数了。都忘记了 。再次实现一下其实排序函数也很简单,自己实现代码如下:#include #include #include using namespace std;typedef struct index { int a,b;}index;
2012-11-06 13:25:20 8781
原创 关于MFC里面位图相关的操作
说实话,最近一段时间由于项目的关系,不得不和MFC里面的图形东西打交道。在mfc里面感觉CBITMAP里面的一些函数像是被微软抛弃了,按部就班的创建一个24位图像却始终不能成功。最后转向DIB来创建。然后显示也是一样的,感觉MFC里面很多东西都被抛弃了,很多都不能成功。下面是创建24位位图,并且将位图保存到bmp文件里面的代码: CDC *pdeskdc = GetDeskt
2012-10-28 16:23:03 1582
转载 GetBitmapBits和GetDIBits的区别(Windows GDI)
Windows GDI中有两个用来得到位图图像数据的API,分别是GetBitmapBits和GetDIBits;按照MSDN的解释,前者是用来得到设备独立位图的BITS,后者是得到兼容位图的BITS,所以在调用该函数的时候,第一个主要的区别是:GetDIBits需要提供一个设备内容,同时需要将位图的HANDLE选进这个设备内容(DC)才能能够得到位图的信息。我想上面的区别
2012-10-16 12:15:41 9471 1
原创 c++ 获取操作的精确时间
有很多时候为了测试效率问题,我们需要对时间的精确掌控,mfc给我们封装的时间函数就满足不了我们的需求了。这时候需要使用下面两个函数 BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency); BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);第一
2012-10-13 18:52:30 3233
原创 StretchBlt()函数使用
StretchBlt函数从源矩形中复制一个位图到目标矩形,必要时按目前目标设备设置的模式进行图像的拉伸或压缩。说白了功能就是缩放。 函数原型如下 函数原型:BOOL StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest, int nWidthDest, int nHeighDest, HDC hdcSrc, int n
2012-10-12 08:42:56 13539
原创 枚举进程ID并且获得进程路径
枚举进程在vc里面一般用CreateToolhelp32Snapshot()函数这个函数的作用是给系统内的所有进程拍一个快照CreateToolhelp32Snapshot 用于获取系统内指定进程的快照,也可以获取被这些进程使用的堆、模块和线程的快照。函数的具体用法是。HANDLE WINAPI CreateToolhelp32Snapshot(DWORD dwFlags,
2012-09-27 22:06:21 5374 1
原创 匿名管道 c++实现
匿名管道是一种未命名的、单向管道通常用来在一个父进程和一个子进程之间传输数据。匿名的管道只能实现本地机器上两个进程间的通信而不能实现跨网络的通信。 #include #include using namespace std;int main(int argc, char* argv[]){ HANDLE hpiperead = NULL , hpipewrite =
2012-09-26 08:48:00 3308 1
crossapp CATabBarController
2015-08-23
curl-ssl-ssh curl7.43.0编译完成文件
2015-07-07
c++ 连接 mysql 官方文档
2012-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人