自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小豪之家

一个热爱生活的普通C++程序员

  • 博客(318)
  • 资源 (7)
  • 收藏
  • 关注

转载 ecshop修饰符preg_replace/e不安全的几处改动

主要集中在 upload/includes/cls_template.php 文件中:  1:line 300 :  原语句:  return preg_replace("/{([^\}\{\n]*)}/e", "\$this->select('\\1');", $source);  修改为:  return preg_replace_callback("/{([^\}\{\n

2015-07-22 11:24:29 2225

原创 试试新功能

1:测试 听说CSDN支持离线写博客啦,我来试试 2:回来 好久没写过博客了,最近太懒了啊 3:图片

2015-07-18 23:15:35 1042

原创 编写leetcode测试用例时所用的辅助函数

在做leetcode题目(https://oj.leetcode.com/problemset/algorithms/)的时候,我们总要自己写测试用例,常常要生成vector, list, tree,我将这些常用操作封装了一下,方便大家使用

2015-01-31 17:10:31 8871 2

原创 编译原理:tiny语言

描述真实的编译器非常困难。“真正的”编译器——也就是希望在每天编程中用到的——内容太复杂而且不易在本教材中掌握。另一方面,一种很小的语言(其列表包括1 0页左右的文本)的编译也不可能准确地描述出“真正的”编译器所需的所有特征。为了解决上述问题,人们在( A N S I)C中为小型语言提供了完整的源代码,一旦能明白这种技术,就能够很容易地理解这种小型语言的编译器了。这种语言称作T I N Y

2015-01-24 16:01:01 6432

原创 C++ string,删除字符串中的首尾空格

直接上代码: void EraseSpace(string &s) { //ch可换成其他字符 const char ch = ' '; s.erase(s.find_last_not_of(" ") + 1); s.erase(0, s.find_first_not_of(" ")); }够简单吧,亏我以前还一个字符一个字符地数空

2015-01-23 17:05:03 6699 3

转载 Linux定时任务设置

配置步骤:1.Linux下必须编译安装PHP解释器,在安装完成后,要将安装目录下${PHP}/bin/php 文件复制到/usr/bin/下,并使用chmod +x ./php 为其添加可执行权限,ok了,然后在linux命令行下输入:php -q *.php执行一个php程序,以验证是否解释器工作正常2.发布php文件:将编写好的php程序发布到apache的发布目录:如:/

2015-01-15 10:45:03 1123

原创 推荐一个代码行数统计工具cloc

代码行数统计工具cloc,它不但能统计代码行数,还能自动过滤掉代码中的注释,使用起来也很方便,强力推荐。安装很方便,Ubuntu上直接udo apt-get install cloc就可以了

2015-01-08 10:51:05 5314

转载 皇帝的新衣:Node.js

现在有很多人非难Node.js(例如著名的Node.js is cancer),但是反对者往往误解其中所传达的信息并用一些无关的观点进行反驳。更麻烦的是现在有两类人在使用Node.js,第一类人需要一个高并发的服务器来同时处理大量的连接(例如HTTP代理、Websocket聊天服务器等等),第二类人是重度依赖于JavaScript,他们在浏览器、服务器、数据库甚至洗衣机上都用JS。我想

2014-12-06 10:04:22 1315

原创 计算代码段的运行时间

计算代码段的运行时间,这段代码用得太多了,决定将其封装成两个宏,方便以后使用。代码很简单,就不解释了。#include #include //计时器开始,//使用时,要将要计时的代码段放入TIMER_START和TIMER_STOP之间,详情请看测试例子//加入do{ }while(0)是为了尽量减少命令冲突#define TIMER_START() \ do \

2014-11-11 15:47:52 1315

转载 站在巨人的肩膀上,C++开源库大全

程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX library : POSIX系统

2014-10-28 19:13:21 1548 1

转载 Visual Studio 调试小技巧(1)-根据字符串内容添加断点

在用Visual Studio调试程序时,我们经常需要根据数值添加断点。比如需要当i == 2时中断运行,我们可以添加如下的断点:  有些时候,我们需要根据字符串的内容来添加断点。比如我们在调试如下代码:void CVSDebugTricksDlg::OnBnClickedButton1(){   char* string;   for(int i = 0; i  

2014-10-23 11:41:07 1282

转载 基本unrar用法

unrar使用帮助用法:     unrar - -                   e             解压压缩文件到当前目录  l[t,b]        列出压缩文件[技术信息,简洁]  p             打印文件到标准输出设备  t             测试压缩文件  v[t,b]        详细列出压缩文件[技

2014-09-20 13:13:33 5079

转载 linuxmint 16 国内源

linuxmint 16 国内源先将/etc/apt/sources.list 及deb http://mirrors.oschina.net/linuxmint/ petra main upstream importdeb http://mirrors.oschina.net/ubuntu/ saucy main restricted universe multivers

2014-09-19 21:30:53 2043

原创 魔兽世界服务器Trinitycore分析四:auth server网络事件的处理

authserver在初始化时,会创建一个AsyncAcceptor对象,在它的构造函数中,会调用AsyncAcceptor::AsyncAccept()准备监听指定端口,当然,正式开始监听要等开始事件循环之后,即调用_ioService.run()之后。

2014-09-05 15:50:26 5052

原创 魔兽世界服务器Trinitycore分析三:日志模块

一:日志接口TrinityCore的日志有六个级别,Trace,Debug,Info,Warn,Error,Fatal它们分别对应以下这六个接口,(filterType__也是在配置文件中指定的)#define TC_LOG_TRACE(filterType__, ...)#define TC_LOG_DEBUG(filterType__, ...)#define TC_LOG_I

2014-09-03 17:51:04 4346

原创 魔兽世界服务器Trinitycore分析二:auth server的main函数

TrinityCore由生成两个执行文件authserver和world server以及一堆DLL(或so)文件的子项目组成(先忽略map_extractor等几个工具项目)。 authserver是登录验证服,它主要提供登录验证和获取服务器(区服)列表的功能。world server是真正的游戏服务器,提供游戏里的一切功能。相对而言,auth server比较简单,那我就从它入手啊,先看一下它的main函数,在源码的基础上,我加上了注释。

2014-09-02 10:55:09 5313

原创 Visual Studio 2013去掉讨厌的红色下划波浪线

1:VA助手的问题(网上大部分都是这个答案)2:但我设置之后,该死的下划线依然存在,经过查找,可以在 工具--选项 里设置搞定!!

2014-09-01 17:44:37 7796 1

原创 魔兽世界服务器Trinitycore分析一:前言

魔兽世界服务器Trinitycore分析一:前言

2014-08-30 11:46:03 10916 6

转载 MFC、WTL、WPF、wxWidgets、Qt、GTK的对比

WTL都算不上什么Framework,就是利用泛型特性对Win API做了层封装,设计思路也没摆脱MFC的影响,实际上用泛型做UI Framework也只能算是一次行为艺术,这个思路下继续发展就会变得没法用了,比如 代码过于复杂,编译太慢,出错不好调试等问题难以解决。而且封装得也不完全,还是随处可见 HWND HDC之类的东西。用途主要是写一些很小的程序,或者作为其他UI框架的后端实现

2014-07-26 09:39:03 5039

原创 将格式化字符串赋给stl::string

代码很简单,就不解释了,直接上代码:#include #include #include using namespace std;//功能:将格式化字符串赋给stl::string//参数:和printf的参数一样//返回值:返回格式化后的string类string StringFormat(const char *format, ...){ string result;

2014-07-25 15:57:28 3165

原创 记录一下我的GDB配置

一:为了更好的在GDB中显示STL容器,我们首先要下载一个python脚本PS:要确定你所安装的GDB可以执行python脚本cd ~mkdir .gdbcd .gdbsvn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python二:修改用户目录下的.gdbinit文件(将以下文本复制一份就行)#为了更好的在GDB中显示STL

2014-07-21 12:01:25 1559

原创 C++的一种业务分发方案(另类的工厂模式)

在C++中,传统的业务分发,总要写一大串的switch-case,而且每次增加新业务时,都要在原有的switch-case里加一个分支,这就违反了设计模式中的开放封闭原则,以下这种方案,就完全去除了switch-case,每当要添加业务模块时,只要写一个TEST_MODULE(index, name)就可以了。思路很简单,直接上代码:#include #include #inclu

2014-07-11 13:03:17 2137

转载 linux中vi命令的常用参数使用总结

1.*关于退出:*:wq! ----强制保存退出:wq  ---- 保存退出:  x   ----- 作用和:wq 一样ZZ  ---- 作用和:wq一样,(注意Z是大写的,并且不是在命令模式):q  ---- 退出:q! ---  强制退出========================================================2.*关于移动

2014-07-04 15:50:35 2069

转载 Node.js 异步异常的处理与domain模块解析

异步异常处理异步异常的特点由于node的回调异步特性,无法通过try catch来捕捉所有的异常:try { process.nextTick(function () { foo.bar(); });} catch (err) { //can not catch it}而对于web服务而言,其实是非常希望这样的: //express风

2014-06-13 10:17:54 1367

转载 webstorm和phpstorm的注册码

WebStorm注册码User Name:EMBRACE License Key:===== LICENSE BEGIN =====24718-1204201000001h6wzKLpfo3gmjJ8xoTPw5mQvYYA8vwka9tH!vibaUKS4FIDIkUfy!!f3C"rQCIRbShpSlDcFT1xmJi5

2014-06-10 10:13:55 2583 1

转载 Socket.IO 和 Node.js 入门

Node.js 并不能做所有事情,但它可通过 Socket.IO 库轻松实现 WebSockets。使用 WebSockets 可轻松构建实时多用户的应用程序或游戏,今天我们将讲述如何使用 Node.js 和 Socket.IO 构建简单的聊天程序。注意: 在阅读文章之前你应该先安装好 Node.js,同时你需要一个自己喜欢的文本编辑器,本文提及的一些源码有些改自 http://boo

2014-05-27 14:59:26 1295

转载 推荐一款cpp解析json工具--rapidjson

项目地址:http://code.google.com/p/rapidjson/上面有很详细的介绍:http://code.google.com/p/rapidjson/wiki/UserGuide作者介绍说:" Rapidjsonis an attempt to create the fastest JSON parser and generator. "这是一个试图

2014-05-15 14:42:36 1253

转载 epoll的高效实现原理

开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。 

2014-05-07 11:36:25 948

转载 TCP状态转移图学习总结

上两周无意中讨论起这个话题,发现andy同学对此甚为熟悉,于是叫他给大家分享了一下,在这里做一个沉淀。这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些状态需要的条件,一共存在11个状态,我们来逐一分析:1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。2.LISTEN:svr端在等待连接过来时候的状态,svr端

2014-05-07 11:25:57 940

转载 为什么你还一直在穷打工?

摘要:同样是打工,为什么你一个月只有2、3K,而唐骏的身价却可以高达10亿?很多人都喜欢抱怨,觉得这个世道不好。但现实是,在同样世道不好的情况下,为什么有的人成功,而你却碌碌无为?差距在哪里?有人问我成功有没有捷径,我告诉他,唯一的捷径就是不走弯路。以下的8条如果你做到了,成功对你而言,只是个时间问题。  同样是打工,为什么你一个月只有2、3K,而唐骏的身价却可以高达10亿?或

2014-05-01 21:54:07 1409

转载 使用forever运行nodejs应用

何为foreverforever可以看做是一个nodejs的守护进程,能够启动,停止,重启我们的app应用。官方的说明是说:A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).// 一个用来持续(或者说永远)运行一个给定脚本的简单的命令行工具Githu

2014-04-30 09:50:42 1176

转载 35岁的职场恐惧!出来混,迟早是要还的!

你所有不曾料想过的问题,都会随着时间的推移而与你不期而遇;你所有曾经潇洒的随遇而安,同样也会随时间流逝而让你承担那些似乎命中已经注定的代价。  在这个世界上,“唯一不可阻挡的是时间,它像一把利刃,无声地切开了坚硬和柔软的一切,恒定地向前推进着,没有任何东西能够使它的行进产生丝毫颠簸,它却改变着一切。”  我始终相信一句话:出来混,迟早要还的。  虽然你我皆是凡人,只是这芸芸

2014-04-30 09:48:48 1641

转载 使用zlib实现gzip格式数据的压缩和解压

代码简介本身这段代码也是从网络上找来的,但是网上的内容都没有针对gzip做特别说明,所以直接拿来用的时候出了些问题,现将我修改后的发在这里。注意代码中的注释部分,这里设置是专门针对gzip的,缺少了就不行了,gzip压缩格式和其他格式的区别就在这里。Bytef 就是 unsigned char,uLong就是 unsigned long,这些别名的设置都在zconf.h文件里面。

2014-04-16 13:50:20 2439 1

转载 开源日志库<log4cplus+VS2008使用>整理

一.简介    log4cplus是C++编写的开源的日志系统,功能非常全面.本文介绍如何在Windows+VS2008中使用该日志库。 二.下载    可从网站[url]http://log4cplus.sourceforge.net[/url]上去下载 log4cplus 1.0.3 rc9,具体地址[url]http://downloads.sourcef

2014-04-03 17:01:01 1413

转载 C语言判断文件夹或者文件是否存在的方法

C语言判断文件夹或者文件是否存在的方法方法一:access函数判断文件夹或者文件是否存在函数原型: int access(const char *filename, int mode);所属头文件:#include filename:可以填写文件夹路径或者文件路径mode:0 (F_OK) 只判断是否存在           2 (R_OK) 判断写

2014-03-31 18:04:56 1332

转载 搭建最简单的Nginx/Tengine tcp反向代理

原文地址:http://blog.csdn.net/teaey/article/details/19114465,转载请注明作者!1. 下载nginx或者tengine这里我下载的是tengine-2.0.0,下载地址http://tengine.taobao.org/download/tengine-2.0.0.tar.gz 2. 解压nginx或者tengine

2014-03-27 15:59:08 2003

转载 libcurl之curl_easy_getinfo的使用教程

执行结果代码[cpp] view plaincopy// getinfo.cpp : 定义控制台应用程序的入口点。  //    #include "stdafx.h"  #include   using namespace std;  #include "curl/curl

2014-03-21 15:36:30 4092

原创 LINUX C:创建与监控多个子进程

先鄙视一下自己,这个简单的功能也搞了一个上午,看来我的基础不扎实啊,写个DEMO记录一下先。这个程序很简单,创建多个子进程,并开启(父子进程的)事件循环,当一个子进程意外退出时(如被KILL掉),父进程会重新启动一个子进程上代码:#include #include #include #include #include //子进程个数#define SUB_PRO_COUN

2014-03-14 13:34:50 4535 2

转载 从 bufferevent 实现学习 Libevent 的使用

Libevent 2 提供了 bufferevent 接口,简化了编程的难度,bufferevent 实际上是对底层事件核心的封装,因此学习 bufferevent 的实现是研究 Libevent 底层 event、event_base 用法的一个好办法。本文假定你已经对 Libevent 有一定的认识,否则可以先阅读我关于 Libevent 的介绍:Libevent(1)— 简介、编译、配置

2014-03-06 16:23:49 2983

原创 libevent2.0分析:事件循环的一生

对于一个网络框架而言,其中的事件循环无疑是重要的组成部分,下面,我们就来分析一下libevent的事件循环。

2014-02-22 14:36:05 3740

redis网络事件框架的使用

redis封装了一个小型网络库供自己使用,这个网络库只有几百行代码,却基本实现了一个高效的异步网络事件框架,而且与其他redis模块相对独立,故我将其独立出来,方便以后复用。 与著名的libevent相比,它代码精简,只实现了最基本的功能,而且没有用上什么高深的技术,十分适合我们学习和借鉴。 以下这个程序实现了一个简单的回显服务器,并且每秒钟在控制台输出一句话。它简单地演示了redis网络模块的使用。 这个程序由6个源文件组成,ae.h, ae.c, ae_epoll.c, anet.h, anet.c, main.c组成,main.c由我原创,其他源文件来自于redis源代码(注释版,有改动)

2013-11-22

hao IM 0.20更新补丁

haoIM的更新补丁,修复了几个BUG 1:自动保存/读取服务器的IP地址和端口,不用每次打开都输入一遍。 2:解决了对方隐身时依然显示对方状态的问题。 3:解决了程序关闭后托盘图标并没有立即消失的问题。 4:解决了因外部原因而强制关闭主窗口后,聊天窗口依然存在的问题。 软件(未更新)地址:http://download.csdn.net/source/3198457 源代码(未更新)地址: http://download.csdn.net/source/3198961

2011-04-22

我自己写的聊天软件haoIM的源代码(utf-8)

我自己写的聊天软件haoIM的源代码,用C++(QT)实现,欢迎大家下载试用。 有问题或建议,请发送邮件至:[email protected]

2011-04-17

我自己写的聊天软件haoIM

我自己写的聊天软件haoIM,用C++(QT)实现,欢迎大家下载试用。 如果有问题或建议,请发送邮件至:[email protected]

2011-04-17

我自己写的聊天软件haoIM的源代码

我自己写的聊天软件haoIM的源代码,用C++(QT)实现,欢迎大家下载试用。 有问题或建议,请发送邮件至:[email protected]

2011-04-17

有问题的QT程序,请大家帮忙看一下吧

有问题的QT程序 这个程序的功能是客户端向服务器发送一个字符串,服务器接收到这个字符串之后,进行处理(复制一个相同的字符串之后加在后面),再返回给客户端。 但不知为什么,服务器一接收数据就出错,请大家帮我看一下吧,先谢谢了。 (提示说不能向别的线程发送信号/数据,但我所有的问题都是在同一个线程里面处理的啊?)

2011-03-21

C与C++库函数.chm

C与C++的基本函数汇总,给大家当字典来用一下。

2009-10-06

空空如也

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

TA关注的人

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