- 博客(431)
- 资源 (18)
- 问答 (1)
- 收藏
- 关注
原创 带你玩转Visual Studio——带你新建一个工程
接着上一篇文章带你玩转Visual Studio——开篇介绍继续讲这个主题,现在我们从创建一个新的工程开始。一步一步创建项目依次选择菜单:File\New\Project,打开New Project对话框。<1>.选择项目类型:Win32 Console Application;<2>.填写工程名(Project Name):TestProject(可以给它取一个任意你想要的名字);<3>.选择
2015-09-23 23:33:23 85746 21
原创 带你玩转Visual Studio——开篇介绍
开篇之前,先唠叨几句本人从事C++开发工作一年半,总想就C++开发方面写点东西。写什么呢?想了一下还是写点跟开发密切相关的吧,要说跟开发最密切相关的那莫过于就是开发工具了,也就是常常说的集成开发环境(IDE)。 这一年多从事的是C++的跨平台开发,在Linux和Windows下都开发过,但主要还是在Windows下进行开发(一般会在Windows下开发,多个平台下编译),因为Windows下有强大好
2015-09-22 23:12:27 55419 36
原创 文件操作中的几个大坑
在程序开发中你经常会碰到很多关于路径的问题的。比如读取文件,写文件等,你必要传一个文件的路径。然而你也许常常碰到这样的问题:逻辑是对的,但就出不来你想要的结果。这是为什么呢?因为对于文件操作的路径问题,有很多你稍不慎就会掉入的大坑。 说几个掉进大坑的惨痛经历
2015-09-10 21:21:52 3545 1
原创 状态模式——水之三态
状态模式——水之三态什么是状态?状态即事物所处的某一种形态。状态模式是说一个对象在其内部状态发生改变时,其表现的行为和外在属性不一样,这个对象看上去就像是改变了它的类型一样。因此,状态模式又称为对象的行为模式。如我们生活中经常见到的水,就有三种不同状态冰、水、水蒸汽,三种状态所表现的外在性质完全不一样:1.冰,质坚硬,无流动性,表面光滑;2.水,具有流动性;3.水蒸汽,肉眼看不见,却存在于空气中,质
2015-08-03 22:01:11 12938 9
原创 生活中的单例——不是单身
什么是单例?单例就是一个类只能有一个对象。比如在我们生活的世界中,有生命的星球只有一个——地球(至少到目前为止人类所发现的世界中是这样的)。单例的实现单例的实现有很多种方式,当然我不会给你一一例举各种方式,我就讲一个最简单的实现方式,相信你也很容易能想到这种方式:Singleton.h:#ifndef __SINGLETON_H__#define __SINGLETON_H__#include <
2015-08-02 10:01:53 2123 4
原创 C++读取注册表
昨天受一朋友要求,帮忙写一个用C++读取注册表的程序。这个朋友是搞Java的,肯定不知道C++怎么写啦!他的需求也奇怪:用js调用一个浏览器插件,通过插件获取注册表中指定键的值,插件肯定是用C++写了。于是乎我就在网上查了一下“C++读取注册表”,一搜一大片但都是一些初学C++的人写的,多数不能用,而且那写的程序真是无力吐槽……一怒之下我就自己花一个小时写了一个,费话不说了,直接上代码:C++读取注
2015-07-31 21:32:36 16348 11
原创 assert预处理宏与预处理变量
assertassert是一个预处理宏,由预处理器管理而非编译器管理,所以使用时都不用命名空间声明,如果你写成std::assert反而是错的。使用assert需要包含cassert或assert.h,用法如下:assert(expr)assert主要用途是:用于调试,检测一些不应该出现的情况。如果expr为假(即为0),assert输出信息并终止程序的运行,如果expr为真,则什么也做。asse
2015-07-26 23:47:20 3289
原创 极客头条这些事
在这个闲来无事的周末,我悄悄走进了极客头条——这一深度交流技术话题的社区,那么故事开始了……我对极客头条的认识听到“极客”这一词是我刚来北京不久,参加一个技术大会时,极客学院的一位大咖提到的,说“极客是一个对某种技术有着强烈爱好和执着追求群体”。 而我现在要提到的极客头条有极客两个字,那极客头条是什么呢?我个人觉得极客头条是这样一个东西:是一个优质文章的收集器,你可以将任何你认为优秀的技术文章推到
2015-07-25 14:55:33 31571 5
转载 centos浅谈之rpm和rpmbuild
本文为转载,内容很精彩,原文链接:http://www.centoscn.com/CentOS/2014/1029/4015.html一、简介 RPM(Red Hat Package Manager)是用于 Linux 分发版(distribution)的最常见的软件包管理器。RPM包命名方式:name-version-release.architecture.rpm。RP
2015-07-24 10:51:03 5425
原创 C++“隐藏实现,开放接口”的实现方案
为什么要有接口?接口就是一个程序与其它程序交流的窗口。就比如有一个电视机,我并不需要知道它是怎样工作的,我只要知道按电源键就可以开启电视,按节目加(+)减(-)可以切换电视频道就可以了。Java程序员都知道Java中有interface可以实现对外的接口,但C++并没有接口这样的语法,那它要好怎样实现对外提供接口呢?我们可以通过纯虚函数定义一个抽象类,专门用来声明一个类的功能。我们完成了一个程序模块
2015-07-24 00:10:52 9303 6
原创 C++中类的多继承
在写这一主题的文章之前,在网上找到一篇很非常好的文章C++之继承与多态。就没有必要做重复造轮子的事件了,那就从这篇文章开始吧!在c++中一个类可以从多个基类中派生(即可以有多个父类),这就是多继承。多继承的方式主要有两种:1. 简单版本 类C会同时拥有类A和类B的特性(属性和方法,也就是两个类的所有成员)。这种方式很简单这里就不多说,主要讲下面这种方式。2. 复杂版本 同样的,这个结构中
2015-07-19 23:07:43 39421 4
原创 C++的三种访问权限与三种继承方式
三种访问权限我们知道C++中的类,有三种访问权限(也称作访问控制),它们分别是public、protected、private。要理解它们其实也很容易,看下面了一个例子。 父类:class Person{public: Person(const string& name, int age) : m_name(name), m_age(age) { } void S
2015-07-19 11:10:18 24595 5
原创 虚函数与多态
假设我们有三个类Person、Teacher、Student它们之间的关系如下: 类的关系图 普通成员函数【Demo1】 根据这个类图,我们有下面的代码实现#ifndef __OBJEDT_H__#define __OBJEDT_H__#include <string>#include <iostream>class Person{public: Person(con
2015-07-19 00:28:49 3295
原创 交叉引用的解决方法——类声明的应用
交叉引用的解决方法什么是交叉引用?什么是交叉引用?一言以蔽之,就是:A类中包含B类的对象,B类中包含A类的对象。以一场景为例我们先来看一个场景。假设有一个电子文档(Document)、一个文档下有多个页(Page),每个页下有多个文本单元(TextUnit,表示文档内元素的基本单位),一个文档中的所有文本单元对象都有唯一的ID。这样每创建一个文本单元时都要为其设置一个唯一的ID,我们在Documen
2015-07-12 23:00:39 5942 1
原创 编程思想之多线程与多进程(4)——C++中的多线程
《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,《编程思想之多线程与多进程(2)——线程优先级与线程安全》一文讲了线程安全(各种同步锁)和优先级,这是多线程学习必须了解的基础。本文将接着讲一下C++中多线程程序的开发.这里主要讲Windows平台线程的用法,创建线程要调用windows API的CreateThread方法。创建
2015-07-10 21:48:18 31047 16
转载 IntelliJ Idea+GitHub设置同步工程
原文:http://aquariuslt.com/2014/10/25/intellij-idea-github-connection/之前弄过一次 后来因为一直在本机开发,所以用的是本地的Git通过IntelliJ Idea + GitHub 管理代码仓库更加方便的看到版本提交历史+更变详细对比,公司+宿舍+笔记本三方同步开发 一.事先准备1.安装GitGit下载: http://git-sc
2015-07-06 20:59:37 49848
原创 开放《数据结构》专栏的代码
之前写的《数据结构》系列博客,虽然已经贴出了主要部分的代码,但还是经常有人问我要代码,我就直接把它开源得了,把代码托管在github上:https://github.com/luoweifu/DataStructure.git欢迎对这方面有兴趣的人一改进和完善这个项目。
2015-07-05 22:46:48 3433
原创 开放《图像处理与搜索》专栏的代码
之前写的《图像处理与搜索》系列博客,虽然已经贴出了主要部分的代码,但还是经常有人问我要代码,我就直接把它开源得了,把代码托管在github上:https://github.com/luoweifu/ImageSearch.git欢迎对这方面有兴趣的人一改进和完善这个项目。
2015-07-05 22:44:28 3152
原创 编程思想之多线程与多进程(2)——线程优先级与线程安全
现在主流操作系统(如Windows、Linux、Mac OS X)的任务调度除了具有前面提到的时间片轮转的特点外,还有**优先级调度(Priority Schedule)**的特点。优先级调度决定了线程按照什么顺序轮流执行,在具有优先级调度的系统中,线程拥有各自的线程优先级(Thread Priority)。具有高优先级的线程会更早地执行,而低优先级的线程通常要等没有更高优先级的可执行线程时才会被执行。
2015-06-30 22:05:06 18014 7
原创 编程思想之多线程与多进程(3)——Java中的多线程
在程序需要同时执行多个任务时,可以采用多线程。Java给多线程编程提供了内置的支持,提供了两种创建线程方法:1.通过实现Runable接口;2.通过继承Thread类。Thread是JDK实现的对线程支持的类,Thread类本身实现了Runnable接口,所以Runnable是显示创建线程必须实现的接口; Runnable只有一个run方法,所以不管通过哪种方式创建线程,都必须实现run方法。
2015-06-28 20:49:35 18338 4
翻译 Java多线程中wait, notify and notifyAll的使用
在Java的Object类中有三个final的方法允许线程之间进行资源对象锁的通信,他们分别是: wait(), notify() and notifyAll()。调用这些方法的当前线程必须拥有此对象监视器,否则将会报java.lang.IllegalMonitorStateException exception异常。
2015-06-27 22:36:37 21719 3
原创 Java中Synchronized的用法
synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 3.修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;4..
2015-06-24 00:25:01 501941 135
原创 编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程
线程是什么?要理解这个概念,须要先了解一下操作系统的一些相关概念。大部分操作系统(如Windows、Linux)的任务调度是采用时间片轮转的抢占式调度方式,也就是说一个任务执行一小段时间后强制暂停去执行下一个任务,每个任务轮流执行。任务执行的一小段时间叫做时间片,任务正在执行时的状态叫运行状态,任务执行一段时间后强制暂停去执行下一个任务,被暂停的任务就处于就绪状态等待下一个属于它的时间片的到来。这样每个任务都能得到执行,由于CPU的执行效率非常高,时间片非常短,在各个任务之间快速地切换,给人的感觉就是多个任
2015-06-22 20:05:28 90554 46
原创 Java中的日志——Java.util.logging、log4j、commons-logging
Java中给项目程序添加log主要有三种方式,一使用JDK中的java.util.logging包,一种是log4j,一种是commons-logging。其中log4j和commons-logging都是apache软件基金会的开源项目。这三种方式的区别如下:Java.util.logging,JDK标准库中的类,是JDK 1.4 版本之后添加的日志记录的功能包。 log4j,最强大的记录日志的方式。可以通过配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等。comm
2015-06-14 22:07:48 31465 7
原创 C++中的log
《 C++、Java、JavaScript中的日志(log)》中讲了日志的概念和应用场景,本文将进一步讲讲C++中日志记录的具体用法。C++中有很多记录log的库,比较常用的有log4cpp(log4cxx)、Google Glog 。下面主要讲一个log4cpp(log4cxx)的用法。
2015-06-14 22:00:18 16165 1
原创 深入Windows内核——C++中的消息机制
《编程思想之消息机制》一文中我们讲了消息的相关概念和消息机制的模拟,本文将进一步聊聊C++中的消息机制。从简单例子探析核心原理在讲之前,我们先看一个简单例子:创建一个窗口和两个按钮,用来控制窗口的背景颜色。其效果如下: Windows系统和Windows下的程序都是以消息为基础,以事件为驱动。
2015-06-14 21:31:37 18809 4
转载 new/delete 和malloc/free 的区别
原文:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/16/2593754.html一、基本概念 malloc/free:1、函数原型及说明: void *malloc(long NumBytes):该函数分配了NumBytes个字节,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。 void
2015-06-07 10:22:06 2914
原创 我的电脑(ACER 4750G)升级
升级原因最近电脑卡的要死,卡到什么程序呢?就是打开“我的电脑”需要2秒中的缓冲时间,这如何受的了……于是就有种特别想换电脑的冲动:买一个顶配版的台式机,让你给我慢。 一心想着顶配,顶配,再顶配…… 却被老爸一句话踩了刹车:给我省着点用,找女朋友了吗? 尼玛,这一下击中我心中的痛…… 脸色瞬间晴转多云,那怎么办呢?只能灰头灰脸地再去整一下我的电脑了,这对于程序猿的我来说也并不算太难的事。 病因分析
2015-06-06 14:29:04 24650 14
原创 如何查看光驱硬盘托架的尺寸
也许你会有装两个硬盘的需求,但一般笔记本只有一个硬盘接口,你就需要把其中一块硬盘安装到光驱上,这时你需要一个光驱托架。好的,到淘宝或京东买一个,你到网上一查,这下你就傻眼了:什么光驱还分尺寸?什么12.7mm,9.5mm,在电脑上看了一个遍也没发现哪里写了有尺寸……我一开始就遇到这个棘手的问题,后面总结了几种方法。 方法一:根据光驱的型号到网上搜索对应的参数1.点击WIN + R 打开运行窗口,输
2015-06-06 01:46:59 128502 3
原创 给在校大学生的一封信,助梦启航!
年青,是一个血气方刚,梦想开花的阶段,但也会有很多的迷茫,也会有对未来的担忧!包括现在的我也时常会感到迷茫,有来自生活的压力……年轻有梦,勇敢去追!进入BAT不是梦……
2015-05-27 00:38:04 5296 7
原创 java:从消息机制谈到观察者模式
观察者模式,顾名思意就是观察与被观察的关系,比如你在烧开水得时时看着它开没开,你就是观察者,开水就是被观察者;再比如说你在带小孩,你关注她是不是饿了,是不是喝了,是不是撒尿了,你就是观察者,小孩就被观察者。观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。
2015-05-13 22:55:02 15076 7
转载 C++拷贝构造函数详解
一. 什么是拷贝构造函数首先对于普通类型的对象来说,它们之间的复制是很简单的,例如:[c-sharp] view plaincopyint a = 100; int b = a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。[c-sharp] view plaincopy#include using namespace std;
2015-05-13 17:03:09 1648
转载 程序员必读书单 1.0
说明:本文为转载,在往下看之前请了解一下作者:巩朋。本科在大连理工大学胡混了三年,本来打算毕业后直接工作,但大四在大连某IT企业的实习经历促使我决定读研(找一个更有价值的工作)。于是我放弃了工作,一边在大连理工大学学习英语双学位,一边准备考研。然后幸运的进入了北京航空航天大学计算机系,师从张莉老师。 毕业之后我加入了Google,本来想去中国Office但是北京和上海都没有名额,于是就被调到了Go
2015-05-11 23:06:02 4427 1
转载 我的算法学习之路
作者:Lucida微博:@peng_gong 豆瓣:@figure9 原文链接:http://lucida.me/blog/on-learning-algorithms/关于严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的。这篇文章讲了什么?我这些年学习数据
2015-05-11 22:54:47 2038
原创 const T、const T*、T *const、const T&、const T*& 的区别
这里的T指的是一种数据类型,可以是int、long、doule等基本数据类型,也可以是自己类型的类型class。单独的一个const你肯定知道指的是一个常量,但const与其他类型联合起来的众多变化,你是不是就糊涂了?下面我们一一来解析。const T、const T*、T *const、const T&、const T*& 的区别
2015-05-09 12:35:55 31826 10
原创 编程思想之消息机制
有很多人可能一听到消息机制就觉得其是一种非常高深和神秘的东西(我刚开始也是这种感觉),但你又无法避免地经常到接触它。它确实比较复杂难懂,但复杂并不代表你就不能去理解,关键在于能不能将复杂的问题讲清楚。那到底什么是消息?消息机制又是怎样的工作原理?让我们一起刨根究底,探索它的来龙去脉吧!
2015-05-07 23:01:51 25892 8
原创 Firebreath3——Firebreath架构
Firebreath工程目录各工程的功能和含意……文件目录Firebreath 根目录 build 编译目录 bin 编译出的插件的.dll或.so文件 boost 编译出的boost库 projects 项目的工程文件,如win下的.sln,.vcxproj … cmake cmake文件 doxygen
2015-03-28 22:50:43 3864
原创 Firebreath2——Firebreath中用到的技术
PythonPython是一种解释型、面向对象、动态数据的高级程序设计语言,常用于编写脚本,也是一种脚本语言。CmakeCmake是一个跨平台的、可拓展的、开源的构建系统,Cmake是为构建、测试、打包软件而设计的一组工具,类似于Java中经常用的maven。cmake用于设置链接的库、包含的头文件、预编译宏等工程配置,这些文件都是写在配置文件中的,叫CMakeLists.txt(或.cmake),
2015-03-24 23:52:54 3760
原创 Firebreath1——Firebreath介绍和环境的搭建
firebreath是什么?Firebreath是一个能方便创建浏览器插件框架。Firebreath构建的插件的工作原理是NPAPI和ActiveX(仅Windows平台)。Why——为什么要用firebreath?1.Firebreath具有跨平台、支持多浏览器的特性,是一个优秀的跨平台跨浏览器的解决方案; 支持windows、Linux、mac等平台, 支持firefox、chrome等主浏览器。
2015-03-24 23:42:46 15047 1
文本编辑器第四版——迷你编辑器(安装文件)
2012-09-23
文本编辑器第三版——文字留痕(安装文件)
2012-08-26
数据结构演示系统(安装程序)
2012-06-03
java连接数据库
2011-09-30
[电脑拆机]谁知道这个模块是什么?
2015-08-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人