自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hzyong_c的专栏

山高月小,水落石出

  • 博客(39)
  • 资源 (8)
  • 收藏
  • 关注

原创 学习react-native之加入redux

学习redux时学过官方Example里的ToDo示例,将它移植到了react-native上。 code:https://github.com/zhenyonghou/Todos

2016-06-19 22:04:17 758

原创 学习react-native之Navigator

学习react-native之Navigator注:其实这不是一篇blog,只是学习简记。有兴趣的看代码。Navigator是react-native官方提供的iOS与Android平台通用的组件。官方文档关于组件介绍得并不详细,看了一些代码,通过这几天的摸索,做了个简单的Demo,放在我的github里:(https://github.com/zhenyonghou/Navigator/tree/

2016-06-19 21:49:57 970

原创 我的第一个App开发过程

今天是我的第一个App第二版在App Store上线的日子,今天开始写一下这个App的开发过程,顺带写些转IOS开发的学习感触,预计两三天写不完,因为时间不宽裕,以后慢慢补充。我开发的是一个孕期跟踪类的应用,产品,美工,服务器端,客户端,QA都是我一个人扮演,下面分角色记录一下过程。产品功能定义:1. 设定、计算预产期,提示怀孕天数,可查看每周状态。2. 孕妇日历,包括农历

2013-12-02 22:14:44 5851 2

原创 遍历(广度优先)windows系统某一目录

遍历目录的类,本来想找一段代码了事,后来没发现合适的,自己写了一个,分享给大家。其中用到一个线程类,也是自己封装的,与主题无关不贴出来,有兴趣的话从我的资源里找吧。directory_traversal.h文件#ifndef DIRECTORY_TRAVERSAL_H__#define DIRECTORY_TRAVERSAL_H__#include #include #in

2013-09-27 14:50:59 1257

原创 比较两个解耦利器:callback vs signal/slot

callback与signal/slot是曾经在Windows客户端项目中大规模使用过的解耦利器,常用于UI层/逻辑层解耦,两个功能模块间搭建桥梁。由于两个的源码分别来自不同的开源库,我稍作过修改,源码有点长,不在这里贴了,源码和文档打包在我的资源里可以找到。callback与signal/slot设计目的相同,使用场景相近,但设计思想迥异。下面拿出我曾经对他们做的分析结果,几个月前总结的东东

2013-09-27 14:19:14 2709 1

原创 IDE快捷键备忘

VS2005编码的时候:F3 继续查找F12 跳到定义处Ctrl+L 删除当前行Ctrl+K+C 注释代码Ctrl+K+U 取消注释Ctrl+- 向后Ctrl+shift+- 向前Alt+G 跳到类的声明处Alt+O .h/.cpp切换Alt+Shift+O 快速查找工程里的文件Alt+Shift+S 查找类名Alt+F8 格式化代码Ctrl+Break

2013-04-13 16:45:35 833

原创 《C++ Templates》读书笔记的一点补充

1. 模板实例化是在编译阶段进行。2. 模板函数可以不指定类型,如max(3, 5),模板类需要指定类型,如vector my_vec;3. 一个非模板函数可以和一个同名的模板函数同时存在,编译器会检查是否有实例化后相同的函数,如果有,则不实例化该实例。4. 模板的函数实现要在头文件中,是因为扩展了inline函数吗?模板类:template class Stack{

2013-01-11 16:29:39 1179

原创 C++11新特性学习笔记

最近学习了C++11的新特性,将学习内容整理下来以巩固记忆,C++11的新特性,可以分为两部分,第一部分是C++11核心语言的特性,第二部分是STL标准库的新特性。学习C++11主要参考了wiki上的一篇文章,在介绍右值引用的时候还参考了MSDN上一篇文章,由于这两篇文章写的时间比较早,和实际有些出入,我写文章时开发环境是win8,vs2012,很多C++11特性还没支持,所以我只整理了vs201

2012-12-08 23:05:39 18571 5

原创 解读boost库的unspecified_bool_type

在boost的智能指针(包括scoped_ptr,scoped_array,shared_ptr,shared_array)里,会看到每个类都有一个成员函数(就称其为函数吧)operator unspecified_bool_type() const,而且是public的,如果你看过源码,也许会产生如何使用的困惑,下面贴出源码。 typedef T * this_type::*unspe

2012-10-08 18:39:54 2928

原创 多线程编程之线程的封装

一.  多线程要考虑的问题前人总结出,一个线程安全的class应当满足三个条件:1. 从多个线程访问时,其表现出正确的行为2. 无论操作系统如何调度这些线程,无论这些线程的执行顺序如何交织3. 调用端代码无需额外的同步或其他协调动作在写多线程程序时脑子里要有这样的意识,下面我总结了几条比较具体的注意事项。使用多线程要考虑的问题:1. 线程访问资源安全(线程同步问题)

2012-09-24 15:17:10 4474 3

原创 SQLite3应用开发笔记

一.准备工作Sqlite官网地址:http://www.sqlite.org,截止目前的最新版本:3.7.14。下载Sqlite源码及对应版本的文档:sqlite-amalgamation-3071400.zip,sqlite-doc-3071400.zip解压源码压缩包,释放出4个文件:shell.c sqlite3.c sqlite3.h sqlite3ext.h开始编译!(w

2012-09-23 20:46:59 8796

原创 《Effective STL》读书笔记

从毕业就开始用STL,到现在也有5年多的使用经验了,两年前也尝试读过sgi STL源码,结果发现闷头读源码不如买本《STL源码解析》效果好。几个月前从网上下载了《Effective STL》的电子书,这是本11年前出版的价值很高的书,还是在业余时间读了两遍,受益良多。下面粗略地记了些阅读笔记,只记录了部分条款,帮助我容易遗忘的大脑。条款1:仔细选择你的容器vector,list,d

2012-08-11 23:49:09 1213

原创 《Effective STL》条款24:当关乎效率时应该在map::operator[]和map::insert之间仔细选择

如果你要更新已存在的map元素,operator[]更好,但如果你要增加一个新元素,insert则有优势.更有效率的”添加或更新“函数(书中的函数我抠了出来~ )template<typename MapType, typename KeyArgType, typename ValueArgType>typename MapType::iter

2012-07-31 20:34:17 2403

原创 《C++ Templates》读书笔记

第二章  函数模版模板函数代表一个函数家族,看起来跟普通函数很相似,唯一区别就是模板函数中某些元素是未确定的,在使用时候这些元素被参数化。返回两个值中最大者的模板函数:templateinline T const& max (T const& a, T const& b){ return a < b ? b : a;}这个模板定义了一个“返回两者中最大者”的函数家族,

2012-07-28 22:07:26 1406 1

原创 stl排序之sort函数

STL容器的排序,支持随机访问的容器vector,deque,string没有sort成员,可调用std::sort排序;list排序调用自带的list::sort。下面是std::sort函数,有两个版本:template void sort ( RandomAccessIterator first, RandomAccessIterator last );template

2012-07-26 23:26:24 40052

原创 c++避免delete不完整类型 --checked_delete

在C++中,delete一个类型不完整的类对象的指针,编译器会发出警告,不幸的是,程序员有时候会忽略这种警告。在下面的例子中,main函数里new了一个类指针,调用delete_obj函数delete企图这个指针,delete_obj函数定义在del.h文件中,然而delete_obj函数只能“看见”Object类的声明,不能“看见”其定义。运行的结果发现Object析构没被调用。// f

2012-07-23 23:10:10 3882

原创 libcurl学习笔记(一)

libcurl是C语言开发的网络库,支持多种网络协议.开发前的准备开发环境windows, vs2005.先下载Curl,目前最新版本:7.22.0libcurl有现成的vs工程,在curl-7.22.0\lib目录,将其编译成静态库,生成libcurl.lib.建一练习工程,从curl-7.22.0\lib目录引入libcurl工程,将curl-7.22.0\include\

2012-07-22 23:23:02 13187 1

原创 效率很高的url-encode和url-decode函数

在网上发现的url-encode和url-decode函数,写得简洁、高效,拿出来分享:/* Converts a hex character to its integer value */char from_hex(char ch) { return isdigit(ch) ? ch - '0' : tolower(ch) - 'a' + 10;}/* Converts an

2012-07-16 20:17:16 4832 1

原创 多线程编程之临界区的应用

一 临界区特点临界区(Critical Section)是一段供线程独占式访问的代码,也就是说若有一线程正在访问该代码段,其它线程想要访问,只能等待当前线程离开该代码段方可进入,这样保证了线程安全。他工作于用户级(相对于内核级),在Window系统中CRITICAL_SECTION实现临界区相关机制。二 临界区相关函数:void InitializeCriticalSection(

2012-07-15 00:22:32 20560 4

原创 单例模式c++实现方法总结

一  单例模式介绍单例模式约束了类的实例化,只允许类创建一个对象。在用代码实现单例模式之前,先看看单例模式的类结构: 特点:1.  类的构造函数外界不可访问.2.  提供了创建对象的接口. 二  单例模式C++实现1.   实现方法一(只作为样例,不推荐使用)// .h文件class SimpleSingleton{public: ~SimpleS

2012-07-14 20:32:28 7852 3

原创 c++公共常量定义方式的比较

我们常在公共头文件中定义一些常量,定义常量方法如下:方法1commdef.h(公共头文件):const int constname = XXX;在使用该变量的地方加入 #include "commdef.h"方法2commdef.h(公共头文件):extern const int constname;commdef.cpp文件:const int constna

2012-07-02 22:55:56 4895 1

原创 指向函数的指针(二)

上一篇介绍了函数指针的基本用法,本篇看一下函数指针的应用。很多时候遇到的都是C函数的callback,下面示例展示C++中使用callback。模板类,该类拥有2个成员,一个是对象指针,一个是成员函数,成员函数必须无参,无返回值。struct CallbackAction { virtual void Execute() = 0; virtual ~CallbackAc

2012-06-12 22:48:35 1419

原创 指向函数的指针(一)

之所以想写一篇函数指针的文章,源于函数指针在C/C++编程中使用的广泛性,而对于一些初级编程者来说对函数指针的使用或许有些迷惑,而一旦在适当的时候使用了函数指针,会使代码简洁有力。本篇介绍的是函数指针的基础部分,函数指针复杂的应用将在下一篇介绍。一  指向普通函数的指针先来看一个函数:int Sum(int a, int b){ return a + b;}这个函数,调用

2012-04-16 00:08:03 25671 5

原创 C++的Json解析库:jsoncpp和boost

JSON(JavaScript Object Notation)跟xml一样也是一种数据交换格式,了解json请参考其官网http://json.org,本文不再对json做介绍,将重点介绍c++的json解析库的使用方法。json官网上列出了各种语言对应的json解析库,作者仅介绍自己使用过的两种C++的json解析库:jsoncpp(v0.5.0)和Boost(v1.34.0)。 一. 使

2011-12-29 23:57:44 100207 12

原创 C语言可变参数的函数实现

在C语言中,有一种参数个数、类型不固定的函数,称之为变参函数,比如常用的printf函数。当我们在输出log信息时,也希望能写一个变参函数作为接口。这里介绍下如何写变参函数。 一、参数宏先来看几个设计变参函数要用到的几个宏,这几个宏定义在stdarg.h文件中。typedef char *  va_list;#define va_start(ap,v)  ( ap

2011-03-15 23:17:00 4568 1

原创 从移动硬盘安装windows7

注:这篇文章是几年前写的,前几天windows8消费者预览版发布了,通过这个方法也安装成功了windows8,但本文还是以windws7为例介绍整个安装过程。准备材料:一个安装有windows系统的电脑,下面的步骤是在windows系统上操作;移动硬盘或U盘一枚,容量要够拷贝WIN7安装文件。step1 制作活动盘插入U盘或移动硬盘,“开始”->“运行”键入“cmd”,回车,弹出命令窗

2011-02-17 22:19:00 1496

原创 U盘启动WinPE拯救硬盘

U盘启动WinPE拯救硬盘春节带笔记本电脑回家了,从家回来之后发现进不了系统了,重新安装系统又不能成功,重安装系统时的错误提示,想想可能是一路颠簸硬盘出问题了,于是一场拯救硬盘的活动开始了。解决思路:首先我想到两种解决办法:第一种:将硬盘拆下来装到USB接口的移动硬盘盒子中,插在在另一台电脑上,将硬盘中的重要文件备份,然后修复硬盘。第二种:下载WinPE,将WinPE刻盘或放到U盘中,启动WinPE,然后将硬盘中的重要文件备份,然后修复硬盘。第一步、制作WinPE启动盘WinPE是一个集成了windows内

2011-02-14 11:19:00 5266

原创 重载全局new/delete实现内存检测

<br />下面介绍用重载new/delete运算符的方式来实现一个简单的内存泄露检测工具,基本思想是重载全局new/delete运算符,被检测代码调用new和delete运算符时就会调用重载过的operator new和operator delete,在重载的operator new里和operator delete里记录下内存申请和释放信息,从而判断内存使用情况。<br />下面一步步介绍它的实现!<br />1、  全局new/delete的重载<br />先看一下重载new/delete的规则:<b

2010-10-18 17:38:00 12357 5

原创 安全地移除list中的元素

问题的引出:一个关于list::erase()的问题。写了个小程序试验list在erase一个成员之后iterator 值的变化,程序中注释部分是运行结果显示的数据,代码如下(主要代码): list::iterator It;for(It = myList.begin(); It != myList.end(); ){ cout     // It= 0x0037232

2009-03-24 13:09:00 11446 2

原创 思考设计模式在自助终端软件上的应用 ——Observer模式

主要思想:将各硬件模块作为观察者加入观察者队列,当机器状态改变时Notify所有观察者,各观察者根据消息类型做不同反应或不作反应。下面贴出代码简单实现,希望引起圈内朋友的关注,起到抛砖引玉的效果。 下面两个类是两个基类.class CObserver {public: CObserver(); virtual ~CObserver();public: v

2009-03-16 22:04:00 848

原创 代码片断改进

// 改前int CLx1101Dlg::ParseValue(CString strValue, vector &paramList){ // 解析strValue,并加入到paramList中 CString l_strTmp; int l_nLen = 0; int l_nPos = -1; while(1) {  l_nLen = strValue.Ge

2008-01-28 12:39:00 873 2

原创 VC++练习题

下面几道题是在我转正前阿邓给我做的几道练习题,里面包含了公司软件中一些常用到的技术,比如多线程同步,消息映射...听阿邓说这些题是他很久以前做过的,我猜想,有可能是当他还是菜鸟时别人让他做的,呵呵,任何一个软件高手都有一个成长的过程,有兴趣的朋友可以做做,不多说了,看题。以下题目综合了WINDOWS消息,控件、线程、数据库等技术知识,在实现的时候请尽量考虑编码规范、程序注释、程序的效率以及稳定

2008-01-07 09:14:00 2092

原创 愁畅无限

这几天仿佛被罩在一个牢笼里,透不过气,工作得很狼狈。光说移植平台了,怎么移?经理不管这些,只管下达命令,之后这些虾兵蟹将开始团团转了。明年四月份会移植成功吗?说实话,我根本不喜欢Cat平台,Hermes比它还优秀为什么要把一个优秀的平台往一个老平台上移呢?移植是有风险的,项目失败了怎么办?我现在一点信心都没有,即使做成功了,我们做这件事有意义吗?不想工作,前些天还在研究架构的事,最后使自己愁畅无限

2007-12-20 16:33:00 1294

原创 控件数组的应用

这是转正前阿邓给我出的五道题目中的第一道,现在拿出来温习一遍:题目如下:在一个对话框程序中生成100个按钮,这100个按钮的名称按照序号来生成,例如从BUTTON1到BUTTON100,点击随意一个按钮,则此按钮会变成Disable状态。(难度1)好了,下面我来完成它。1、建一对话框工程,在View->Resource Symbols里建立一些连续ID,比如:IDC_MYBUTTO

2007-12-20 15:38:00 1621

原创 如何改变Edit框的字体颜色

需要重载一个函数HBRUSH CLX1107Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);  // TODO: Change any attributes of the DC here if(pWn

2007-12-20 15:05:00 1208

原创 窗口接收文件

前段时间做文件解析工具时用到了拖曳功能,现在把实现的步骤记下来以供参考。其实很简单,就是添加个消息映射,在消息响应函数进行处理。我们要做的就是对WM_DROPFILES消息的捕捉,处理,这个消息是系统消息,可以在WINUSER.h文件中找到实现步骤如下(我建的是对话框工程):1、选中对话框的Properities->Extended Styles,选中Accept files2、声明消

2007-12-20 14:59:00 1047

原创 VC点滴知识记录--关于窗口与显示器

关于显示器的设置 // turn off monitor ::SendMessage(this->GetSafeHwnd()/*m_hWnd*/, WM_SYSCOMMAND, SC_MONITORPOWER, 2); // turn on monitor ::SendMessage(this->GetSafeHwnd()/*m_hWnd*/, WM_SYSCOMMAND, SC_

2007-12-13 16:21:00 1096

原创 沟通日志之制衣

2007-12-05广州某制衣厂打电话给我通知工作装的量身事项电话响,我接电话...hzyong:  你好zychang: 是侯先生吗?hzyong:  我是zychang: 我们是广州**制衣厂的,您在北京,由于我们在北京没有分厂,所以没办法帮您量身,只能您自己量,我这有份表单,需要发传真给您hzyong:  您说发传真是吗?我这里没传真机。zychang: 哦,

2007-12-13 15:23:00 805

原创 VC++ ADO访问数据库笔记

最近在做一个工具这个工具用来查看SQL SERVER, ACCESS,ORACLE及UDL文件连接的数据库内容的,程序中用到了ADO,工具基本功能已实现,下面把一些用ADO的心得写下来,供ADO初学者参考。一、引入ADO库文件使用ADO前需要在工程的stdafx.h文件或写ADO代码的类的头文件中用#import引入ADO库文件。例如,建一个对话框工程,取名Lx4,在CLx4Dlg.h

2007-11-23 15:49:00 1861 1

callback_sigslot

花时间重新阅读了callback和sigslot,做了个对比。

2013-04-19

c++sigslot实例

这个资源是留给自己以后看的。 看了几个小时的sigslot终于弄明白它是怎么回事了,为了担心以后忘记,简单UML图,简单注解,实例。

2013-04-18

广度遍历目录的代码

自己写的,里面包含一个线程类,和一个遍历目录的类

2012-12-12

计算md5值的C++类

里面有两个我从网上找到的计算md5值的C++类,接口都很简单,经过简单验证,都没问题,其中一个已经用到了我的项目中。

2012-11-24

des,3des,mac工具及完整源码

压缩包中包含全部源码,该版本更新内容: 1、在之前代码基础上做了更新,增加了mac的计算; 2、用MFC做了个界面,方便直接输入数据计算结果;

2011-03-08

DES和3DES加解密算法源码实现

在网上找了许多份DES源码,计算结果都不对,无奈自己根据文档写了一份源码,该压缩包包含了DES和3DES的加解密算法的C++实现,还有我开发时参考的文档,Debug时输出中间计算值,可用于调试你自己写的des代码,经验证结果正确。

2011-01-20

<深入浅出设计模式>,一本好书

深入浅出设计模式,一直在读这本书,现在买了书,把电子版的共亨给大家,读了很受启发.

2008-08-27

《深入浅出MFC》侯捷著.华中理工大学同版

极好的mfc教程,而且很清晰,质量很好,保存它两年了,现在和大家分亨一下。

2008-08-27

空空如也

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

TA关注的人

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