自定义博客皮肤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++ for Windows 之路

当灵感出现时,立即抓住它,不要拖延。你可以有很多idea,但如果不实践,他们都等于零

  • 博客(119)
  • 资源 (14)
  • 收藏
  • 关注

转载 描述程序员牛人

今天看到以下文字。描述程序员牛人——————————————————————————————————————有幸目睹了一位当时国内最牛程序员的一次编程作业,从此彻底颠覆了我的想法。先说说牛人的业绩,一个工作日,基本没加班,完成一个复杂 C/S软件的服务器端,用统计小工具数数代码,三万多行。这个软件经过简单的测试,第二天就上线实际运行了,每天数千人访问,没出过大问题。再说开发过程,开发环境是

2012-09-07 19:34:23 1561 1

翻译 中国与印度软件工程师的比较

在工作中,接触到印度软件公司开发出来的软件: 整个体系架构非常清晰,按照我们的要求实现了全部功能,而且相当稳定。但是打开具体的代码一看,拖沓冗长,水平不咋样。我们自己的一些程序员就有怪话了,说他们水平真低。但是! 印度人能够把软件整体把握得很好,能够完成软件,并得到相当好的设计文档。而中国人在那里琢磨数据结构、算法,界面人员就还没编码就想着是Outlook式的还是Visual Studio式的界面

2012-02-16 01:09:19 1400

原创 人生感悟

人生中真实的世界,就是一个不 完美的世界 。世界有 阴暗 也有光明,人生有高峰也有低谷,但在敢于应对挑战的人那里,真实的世界恰恰是一个富有的世界,总能找到希望!即便你看到的阴暗面再多,也不是世界的全部;即使黑夜再长,也还会有太阳升起的那一刻。 但是,也唯有这些艰难,才能突出生命的可贵与不凡,让我们可以笑着离开。唯有经过磨炼的生命,才能累积出坚强的生命力,也唯有历经风风雨雨的人,才知道生命的难得与珍

2012-01-28 01:13:49 915

转载 展望C++的未来

展望未来的时候。虽然C++从脱胎于C开始,一路艰难坎坷的走过来,但是无论如何C++已经取得了工业基础的地位。文章列举的大量相关资源就是最好的证明,而业界的大量用C++写成的产品代码以及大量的C++职业工程师则是最直接的证明。同时,我们可以看到各个高校的计算机专业都开设有C++这门课程,网络上对于C++的学习讨论也从来都没有停过。但是,在Java和.NET两大企业开发平台的围攻下,给人的感觉是C++

2012-01-22 13:10:58 1735

原创 COM的优点

重新看了潘爱民的《COM原理与应用》,觉得书中对COM的优点讲述得并不全面,或者说并没有把COM的最突出的优点讲出来。     比如该书的第一章 1.1.2 组件的产生 提到:    在计算机软件发展的早期,一个应用系统往往是一个单独的应用程序。应用越复杂,程序就越庞大,系统开发的难度也就越大。而且,一旦系统的某个版本完成以后,在下个版本出来之前,应用程序不会再有所改变。而对于庞大的程

2012-01-18 17:29:46 1174

原创 the books of computer

1.The Art of Computer Programming  Author: Donald.E.Knuth  Web site: http://www-cs-faculty.stanford.edu/~knuth/taocp.html  Book Info: 这部书被誉为20世纪最重要的20部著作之一,与Einstein的相对论>>并列,是计算机科学领域的权

2012-01-01 00:00:07 3254 1

原创 可以让你少奋斗10年的工作经验

第一:不要认为停留在心灵的舒适区域内是可以原谅的。      每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照规定的时限做事,不愿意主动的去     关心别人,不愿意去思考别人还有什么没有想到。这在学生时代是很容易被理解的,有时候这样的同学还跟“冷酷”“个性”这些字眼沾边,算作是褒义。然而相反,在

2011-12-19 11:26:54 1156

原创 思想是成功之因(转)

每一个人的成功,就像是太阳的东升西落,是可以被预期的、被肯定的。只要他做某些固定的事情,使用某些法则,任何人都可以成功。因为成功是靠思想,不是靠性别、不是靠经验、不是靠智慧、不是靠体力。思想,控制一切。到底成功者是做哪些事情,拥有哪些成功的想法呢?思想是原因,环境是结果。现在,就让我一一告诉大家。1、要明确你的梦想和你理想的生活方式  在多年前,我已明确知道我要的生活方式,明确知道自己要做

2011-12-16 16:43:53 1454

转载 Direct UI

在界面开发中,目前DirectUI是个热门的技术名称,因为众多的知名公司都是用DirectUI方式作出了很炫丽的界面。而对于大多数熟悉Win32控件,熟悉MFC开发的开发人员来说,我们应该做何选择?因为传统的Win32/ MFC大家都比较了解,所以首先我们分析DirectUI,看看DirectUI能完成哪些普通Win32控件难以实现的功能,同时实现一个完整的DirectUI有那些关键点

2011-11-30 16:31:20 33977 3

转载 探寻C++最快的读取文件的方案

在竞赛中,遇到大数据时,往往读文件成了程序运行速度的瓶颈,需要更快的读取方式。相信几乎所有的C++学习者都在cin机器缓慢的速度上栽过跟头,于是从此以后发誓不用cin读数据。还有人说Pascal的read语句的速度是C/C++中scanf比不上的,C++选手只能干着急。难道C++真的低Pascal一等吗?答案是不言而喻的。一个进阶的方法是把数据一下子读进来,然后再转化字符串,这种方法传说中很不错,

2011-11-29 09:03:57 2374 2

转载 深入剖析WTL框架(六)

WTL对框架窗口的封装ATL仅仅是封装了窗口函数和提供了消息映射。实际应用中,需要各种种类的窗口,比如,每个界面线程所对应的框架窗口。WTL正是在ATL基础上,为我们提供了框架窗口和其他各种窗口。所有的应用程序类型中,每个界面线程都有一个框架窗口(Frame)和一个视(View)。它们的概念和MFC中的一样。图示是WTL的窗口类的继承图。 WTL框架

2011-11-28 20:40:19 988

转载 深入剖析WTL框架(五)

ATL对窗口消息处理函数的封装 在本节开始部分谈到的封装窗口的两个难题,其中第一个问题是怎样解决将窗口函数的消息转发到HWND相对应的类的实例中的相应函数。下面我们来看一下,ATL采用的是什么办法来实现的。 我们知道每个Windows的窗口类都有一个窗口函数。 LRESULT WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM

2011-11-28 20:39:05 675

转载 深入剖析WTL框架(四)

superclass superclass是一种生成新的窗口类的方法。它的中心思想是依靠现有的窗口类,克隆出另一个窗口类。被克隆的类可以是Windows预定义的窗口类,这些预定义的窗口类有按钮或下拉框控制等等。也可以是一般的类。克隆的窗口类使用被克隆的类(基类)的窗口消息处理函数。克隆类可以有自己的窗口消息处理函数,也可以使用基类的窗口处理函数。 需要注意的是,superclass

2011-11-28 20:38:00 738

转载 深入剖析WTL框架(三)

在上面的例子中,CDerived从CBase中派生出来。CDerived类通过定义一个WM_LBUTTONDOWN消息处理函数来改变CBase类代表的窗口的功能。这样,CBase类的消息映射定义了一个ProcessWindowMessage()函数,而CDerived类的消息映射也定义了一个ProcessWindowMessage()函数。那么,我们在窗口处理函数逻辑中怎样把这两个

2011-11-28 20:37:03 677

转载 深入剖析WTL框架(二)

ATL的消息处理宏消息映射的目的是实现ProcessWindowMessage()。ProcessWindowMessage()函数是窗口函数的关键逻辑。一共有三种消息处理宏,分别对应三类窗口消息——普通窗口消息(如WM_CREATE),命令消息(WM_COMMANS)和通知消息(WM_NOTIFY)。消息处理宏的目的是将消息和相应的处理函数(该窗口的成员函数)联系起来

2011-11-28 20:36:00 610

转载 深入剖析WTL框架(一)

WTL的基础是ATL。WTL的框架窗口是ATL窗口类的继承。因此,先介绍一下ATL对Windows窗口的封装。由第一部分介绍的Windows应用程序可以知道创建窗口和窗口工作的逻辑是: 1 注册一个窗口类 2 创建该类窗口 3 显示和激活该窗口 4 窗口的消息处理逻辑在窗口函数中。该函数在注册窗口类时指定。 从上面的逻辑可以看出,要封装窗口主要需解决怎样封装窗口消息处理机制

2011-11-28 20:34:31 1217

原创 TCP/IP协议与UDP/IP协议的区别

TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,只简单的描述下这三次对话的简单过程:A --->B//主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次对话;A <---B

2011-11-28 20:27:13 25019 2

原创 QQ界面技术(DirectUI)

DirectUI界面库 取名自微软的一个窗口类名“DirectUIHWND”,意为Paint on parent dc directly。即子窗口不以窗口句柄的形式创建,只是逻辑上的窗口,绘制在父窗口之上。微软的“DirectUI”技术广泛的应用于Window XP系统,Media Player播放器,即时通讯工具MSN Messager。传统的window界面,是用户窗口的层次排列,这种

2011-11-28 18:46:27 5903

转载 HOOK API 入门篇(六)

10)编译项目生成mousehook.dll。   2.创建钩子可执行程序   (1)用MFC的AppWizard(EXE)创建项目Mouse;   (2)选择“基于对话应用”并按下“完成”键;   (3)编辑对话框,删除其中原有的两个按钮,加入静态文本框和编辑框,用鼠标右键点击静态文本框,在弹出的菜单中选择“属性”,设置其标题为“鼠标所在的窗口标题”;  (4)在Mous

2011-11-26 16:59:37 1115

转载 HOOK API入门篇(五)

(8)类Cmousehook的成员函数的具体实现:  Cmousehook::Cmousehook()  //类构造函数  {  }  Cmousehook::~Cmousehook()  //类析构函数  {  stophook();  }  BOOL Cmousehook::starthook(HWND hWnd)  //安装钩子并设定接收显示窗口句

2011-11-26 16:58:49 844

转载 HOOK API入门篇(四)

下面说说在VC6中全局共享数据的实现   在主文件中,用#pragma data_seg建立一个新的数据段并定义共享数据,其具体格式为:   仅定义一个数据段还不能达到共享数据的目的,还要告诉编译器该段的属性,有两种方法可以实现该目的(其效果是相同的),一种方法是在.DEF文件中加入如下语句:SETCTIONS shareddata READ WRITE SHARED

2011-11-26 16:58:00 919

转载 HOOK API入门篇(三)

3.卸载钩子   当不再使用钩子时,必须及时卸载。简单地调用函数 BOOL UnhookWindowsHookEx( HHOOK hhk)即可。 值得注意的是线程钩子和系统钩子的钩子函数的位置有很大的差别。线程钩子一般在当前线程或者当前线程派生的线程内,而系统钩子必须放在独立的动态链接库中,实现起来要麻烦一些。  在CChildView::OnPaint()添加如下代码:

2011-11-26 16:57:15 1042

转载 HOOK API入门篇(二)

8、WH_KEYBOARD Hook 在应用程序中,WH_KEYBOARD Hook用来监视WM_KEYDOWN and WM_KEYUP消息,这些消息通过GetMessage or PeekMessage function返回。可以使用这个Hook来监视输入到消息队列中的键盘消息。9、WH_KEYBOARD_LL Hook WH_KEYBOARD_LL Hook监视输入到线程消息

2011-11-26 16:56:21 1519

转载 HOOK API入门篇(一)

Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,

2011-11-26 16:55:32 2351

转载 WinInet分析

WinInet(「Windows Internet」)API帮助程序员使用三个常见的Internet协议,这三个协议是:用于World Wide Web万维网的超文本传输协议(HTTP:Hypertext Transfer Protocol)、文件传输协议(FTP:File Transfer Protocol)和另一个称为Gopher的文件传输协议。WinInet函数的语法与常用的Win32

2011-11-23 21:06:44 1123

原创 线程、线程句柄、线程ID

什么是句柄:句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中来回移动对象,依此来满足各种应

2011-11-21 13:36:43 3678

原创 WTL的两面性

WTL 具有两面性,确实是这样的。它没有MFC的界面(GUI)类库那样功能强大,但是能够生成很小的可执行文件。如果你象我一样使用MFC进行界面编程,你会觉得MFC提供的界面控件封装使用起来非常舒服,更不用说MFC内置的消息处理机制。当然,如果你也象我一样不希望自己的程序仅仅因为使用了MFC的框架就增加几百K的大小的话,WTL就是你的选择。当然,我们还要克服一些障碍:  1) ATL样式的模

2011-11-20 20:54:22 918

原创 MFC socket编程基础

CAsyncSocket         看类名就知道,它是一个异步非阻塞Socket封装类,CAsyncSocket::Create()有一个参数指明了你想要处理哪些Socket事件,你关心的事件被指定以后,这个Socket默认就被用作了异步方式。那么CAsyncSocket内部到底是如何将事件交给你的呢?         CAsyncSocket的Create()函数,除了创建了一个S

2011-11-20 19:54:21 5570 2

转载 让程序只运行一个实例的四种方法

综述:让一个程序只运行一个实例的方法有多种,但是原理都类似,也就是在程序创建前,有窗口的程序在窗口创建前,检查系统中是否已经设置了某些特定标志了,如果有说明已经有一个实例在运行了,则当前程序通知用户怎样怎样,然后程序退出,当然方法有这么多,各自也就有自己的优缺点了。方法一:我用得做多的方法是创建互斥体Mutex,使用Mutex代码比较简洁,但是此时不能取得已经启动的实例窗口局柄,因此无

2011-11-06 22:47:58 1242 1

原创 私有继承和聚合的分析比较

有时候程序员想利用现有的基类(即通过派生类使用现有的功能),但没有is-a关系,在这种情况下,私有继承就可以有用了。   使用私有继承,基类的公有成员和保护成员都将成为派生类的私有成员。这意味着基类方法将不会称为派生对象公有接口的一部分,但可以在派生类的成员函数中使用它们。使用私有继承,基类的公有方法将成为派生类的私有方法。简而言之,派生类不继承基类的接口。使用私有继承,类将继承实现。

2011-11-03 10:48:07 785

原创 CoCreateInstance用法

函数功能描述:用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象。当在本机中只创建一个对象时,可以调用CoCreateInstance;在远程系统中创建一个对象时,可以调用CoCreateInstanceEx;创建多个同一CLSID的对象时, 可以参考 C

2011-10-06 14:35:54 5742

转载 通过COM技术实现Windows Shell编程

在Windows环境下,不论是使用Visual C++还是Delphi或是其他一些软件开发工具开发的应用程序,尽管存在着差别,但有一点是相同的:都是运行于Windows操作系统之下的。在程序开发过程中也经常要在自己的应用程序中加入一些Windows系统本身就有的功能,比如文件的拷

2011-10-04 00:42:37 630

转载 最新关于算法和数据结构的面试十六题 .

五只猴子分桃。半夜,第一只猴子先起来,它把桃分成了相等的五堆,多出一只。于是,它吃掉了一个,拿走了一堆; 第二只猴子起来一看,只有四堆桃。于是把四堆合在一起,分成相等的五堆,又多出一个。于是,它也吃掉了一个,拿走了一堆;......其他几只猴子也都是 这样分的。问:这堆桃至少有多

2011-09-25 22:23:09 1076

转载 十道海量数据处理面试题与十个方法大总结 .

第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。      首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件

2011-09-15 23:33:52 791

转载 面向对象设计的基础准则

对“多变”的部分进行封装尽量使用“组合”而少用“继承” 面向“接口”编程,而非面向“实现” 对象间的交互行为要尽可能“松耦合”设计 类要对“扩展”开放,对“修改”关闭 依赖“抽象”而不依赖具的类 只和朋友交谈(不要通过A类去获取B类并访问它) 等我的电话,别打给我 一

2011-09-15 22:14:43 571

原创 WINDOWS内核对象

WINDOWS内核对象 一.前言 Windows中有很多像进程对象、线程对象、文件对象等等这样的对象,我们称之为Windows内核对象。内核对象是系统地址空间中的一个内存块,由系统创建并维护。内核对象为内核所拥有,而不为进程所拥有,所以不同进程可以访问同一个内核对

2011-09-15 20:37:06 645

转载 windows时间函数

介绍        我们在衡量一个函数运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,比如在多媒体中,比如在游戏中等,都会用到时间函数。还比如我们通过记录函数或者算法开始和截至的时间,然后利用两者之差得出函数或者算法的运行时间。编

2011-09-15 12:53:00 709

原创 如何阅读一本好书

《如何阅读一本书》说的是“阅读好书的艺术”,这种阅读的目的是为了对某类问题想得比以前更清楚,是为了提高自己的理解力而图书,而非仅仅获得资讯或是消遣。(只有少数经典之作才需要用此方法)     一、一个好的阅读方式最重要的是要做到:主动阅读。作者认为真正地阅读必须是,充满主动的

2011-09-14 15:44:57 823

转载 如何高效地管理时间

如何高效地管理时间 现代人的生活节奏越来越快,压力也越来越大。经常会听到白领人士抱怨一个星期有三到四天的时间在加班,没有时间锻炼身体,身体经常处在一种透支的状态;也有人抱怨,虽然现在的职位已经到了中层管理层,但是没有安全感,因为知识的更新速度太快。其实大家都感觉到时间是个

2011-09-13 21:21:35 435

转载 PeekMessage与GetMessage .

BOOL PeekMessage(    LPMSG lpMsg,    HWND hWnd,    UINT wMsgFilterMin,    UINT wMsgFilterMax,    UINT wRemoveMsg);当消

2011-09-13 21:04:24 719

控制台的坦克大战

在Console 下写的坦克大战游戏,虽然在架构上有待改进,但是功能和界面上实现了游戏的效果。

2012-09-27

VC++小游戏开发实例教程.chm

VC++小游戏开发实例教程.chm

2011-12-03

windbg使用帮助.chm

windbg使用帮助.chm windbg使用帮助.chm 非常经典,软件调试必备

2011-12-03

COM本质论.pdf

本书由一流的权威撰写,揭示了COM(组件对象模型)的本质,旨在帮助开发人员真正理解COM的为什么,而不仅限于怎么使用。书中还提供了一个完整的分布式COM应用,演示了各种编程技术。是程序员必备的参考书。 本书适合有经验的软件开发人员阅读,也可作高校计算机相关专业软件组件课的教材。

2011-12-03

windows网络编程(第二版)

本书由权威专家编写,指导导读者如何使用Windows XP的Winsock API和.NET套接字以及传统的Windows API编写网络应用程序。作为更新的编程指南,本书着重于Windows XP中革新的联网特性,同时包含了对C#编程语言的支持。本书还介绍了最新的网际协议:IPv4和IPv6,以及可靠IP多播协议。书中用大量的实例详细地描述了Microsoft网络API函数的应用,配套光盘也包含了所有的示例代码。对于在网络技术方面需要明确实用的Microsoft网络API信息的开发者,或是寻求Microsoft网络操作内部信息的管理员而言,这些内容都是较为理想的。对于在编程或工作中要用到当前的Microsoft或Internet联网软件的读者,本书也是很合适的学习和参考资料。

2011-12-03

C++设计新思维(泛型编程与设计模式之应用)

 本书从根本上展示了generic patterns(泛型模式)或pattern templates(模式模板),并将它们视之为“在C++中创造可扩充设计”的一种功能强大的新方法。这种方法结合了template和patterns,你可能未曾想过,但的确存在。为C++打开了全新视野,而且不仅仅在编程方面,还在于软件设计本身;对软件分析和软件体系结构来说,它也具有丰富的内涵。

2011-12-03

高级TCP/IP编程

本书涉及了网络编程的所有细节,通过对TCP/IP编程精细部分的分析,帮助读者理解网络协议内部是如何与应用程序交互的。全书分为四章,提供了44个TCP/IP编程技巧,生动详实的探索了网络编程的各个方面。这本书应该是windows网络编程的经典.

2011-12-03

QT_Nokia内部培训资料.pdf

QT_Nokia内部培训资料.pdf QT_Nokia内部培训资料.pdf

2011-12-03

大规模C++程序设计

在本书中,Lakos介绍了将大型系统分解成较小且较好管理的组件层次结构(不是继承)的过程。这种具有非循环物理依赖的系统的维护、测试和重用从根本上比相互紧密依赖的系统更容易且更经济。此外,本书还说明了遵从好的物理设计和逻辑设计规划的动机。Lakos给读者提供了一系列用来消除循环依赖、编译时依赖和连接时(物理)依赖的特殊技术

2011-12-03

ATL 开发指南

本书是介绍使用ATL进行软件开发的参考用书。全书分为十三章:第一章引入了C++模板的概念; 第二章详细介绍了组件对象模型(COM);第三章介绍了活动模板库(ATL)的概念和使用方法;第四章涉及接口的实现和线程之间的参数调度等细节问题;第五章探讨了代码复用的两种方法——包容和集合;第六章讨论了关于自动化的问题;第七章说明了事件和连接点的管理;第八章围绕ActiveX控件展开了详细的论述;第九章介绍了COM中的两种实体——枚举器和集合;第十章研究了COM里的线程管理;第十一章讨论了OLE DB同ATL之间的关系;第十二章介绍了两种GUI接口——对话框和视窗;最后二章解释了COM+的一些基本概念。 由于书中的内容非常庞杂,并且涉及到Visual C++开发的一些内核问题,所以本书对读者有一定的要求。我们希望你在开始阅读之前,已经了解COM、ActiveX控件的基本知识,并且具有使用Visual C++开发应用程序的实践经验。本书的主要对象是程序设计或开发人员,同时也可以作为大专院校计算机专业师生和计算机爱好者的参考资料。

2011-11-23

windows下的输入法编程指南 PDF

WINDOWS下输入法编程,深入浅出剖析输入法编程,可以使得自己的windows编程经验得到提高

2011-10-11

VC计算器设计

在VC平台用MFC写的简易计算器,实现简单的加减乘除功能。。。。。

2011-10-11

C++ 算法大全 PDF

C++ 经典算法大全。内容详细,算法经典。很值得一看。

2011-07-28

空空如也

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

TA关注的人

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