Dr.Wing

心翼的技术笔记本

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年11月23日

摘要: 1.1基本概念断言是一种让错误在运行时候自我暴露的简单有效实用的技术。它们帮助你较早较轻易地发现错误,使得整个调试过程效率更高。断言是布尔调试语句,用来检测在程序正常运行的时候某一个条件的值是否总为真,它能让错误在运行时刻暴露在程序员面前。使用断言的最大好处在于,能在更解决错误的发源地的地方发现错误。断言具有以下特征:n断言是用来发现运行时刻错误的,发现的错误是关于程序实现方面的。n断言中的布尔表达式显示的是某个对象或者状态的有效性而不是正确性。n断言在条件编译后只存在于调试版本中,而不是发布版本里。n断言不能包含程序代码。n断言是为了给程序员而不是用户提供信息。使用断言最根本的好处是自动发现 阅读全文
posted @ 2011-11-23 14:14 心翼 阅读(6525) 评论(0) 推荐(0) 编辑

2011年11月2日

摘要: 第二章、在窗口中画图精华浓缩: Windows中负责图形输出的是GDI(即Graphic Device Interface,图形设备接口)。这是Windows与硬件无关的图形输出模式的体现。GDI建立在硬件抽象层(HAL)之上,屏蔽了不同输出设备之间的差异,从而为用户提供了一个统一的“标准输出设备”。但是,与DOS不同,Windows是多任务、进程独立的,每一个窗口都应该有一个独立的输出通道。这样,GDI又使用了一种简单的机制来保证在窗口中画图的不同程序之间能共享“设备”而又互不干扰。这个机制就是DC(Device Context,设备描述表)。 有人把DC比喻成画家的画室,这里有画布、画刷、 阅读全文
posted @ 2011-11-02 00:55 心翼 阅读(435) 评论(0) 推荐(0) 编辑

摘要: 第一章 Hello MFC 我们大家都知道每一个Windows程序都以一个WinMain()开始,MFC的当然不例外。但在MFC中,它被隐藏了起来。MFC定义了一个全局应用程序对象(姑且称其为theApp),而每一个全局对象都是在主程序进入点(EntryPoint)之前由启动代码构造完成的。换句话说,程序在进入WinMain()之前,内存中将有了一个theApp对象。这样,theApp的成员函数就可以为我们所用了。也就是这时,Winmain()出场了... WinMain()首先调用theApp(就是应用程序类)的成员函数InitInstance()虚函数(要覆盖),构造主窗体,并显示更新.. 阅读全文
posted @ 2011-11-02 00:44 心翼 阅读(699) 评论(0) 推荐(0) 编辑

摘要: 第一章 快速入门这章没什么特别的,主要是一个for语句的问题,值得注意一下:如题目是这样的,给定数1000和2000,然后输出这两个数之间的所有数字,但使得输出每行不超过10个,于是程序这样写:#include<iostream>using namespace std;int main(){ for (int i=1000,row=1;i<2000;i++,row++) //这个for语句里面可以写量个变量,两个一起++ { cout<<i<<""; if(row%10==0) { c... 阅读全文
posted @ 2011-11-02 00:29 心翼 阅读(224) 评论(2) 推荐(0) 编辑

2011年10月27日

摘要: boost::scoped_ptr虽然简单易用,但它不能共享所有权的特性却大大限制了其使用范围,而boost::shared_ptr可以解决这一局限。顾名思义,boost::shared_ptr是可以共享所有权的智能指针,首先让我们通过一个例子看看它的基本用法: 1 #include <string> 2 #include <iostream> 3 #include <boost/shared_ptr.hpp> //头文件里面包含这个! 4 5 class implementation 6 { 7 public: 8 ~implementation() { 阅读全文
posted @ 2011-10-27 11:50 心翼 阅读(211) 评论(0) 推荐(0) 编辑

2011年10月8日

摘要: 资源发布者必须向BT站点上传资源的Torrent文件,即种子文件,该文件的扩展名为torrent。Torrent文件包含了资源的大小,文件列表,Tracker服务器地址等发布时必须的信息。因此若要发布资源,首要步骤就是制作Torrent文件。不过不用担心,制作Torrent文件十分容易。几乎所有BT客户端软件都提供制作Torrent文件的功能,其方式大同小异。下文以uTorrent为例介绍制作Torrent文件的方法:第一步,我们需要下载uTorrent这个软件,软件下载地址为http://download.utorrent.com/3.0/utorrent.exe下载并安装后,如下图显示:第 阅读全文
posted @ 2011-10-08 14:38 心翼 阅读(429) 评论(0) 推荐(0) 编辑

2011年9月1日

摘要: 1、C++ Primer 【理由:学好语言,打好基础】2、孙鑫VC++ 【理由:入门】3、MFC Windows程序设计(第2版)修订版(附光盘) 【理由:孙鑫书的提高版】4、Visual C++2010入门经典(第5版) 【理由:C++ Primer同VS的结合】5、深入浅出MFC第二版 【理由:高手进阶之路】6、Windows核心编程 【理由 高手进阶之路】 阅读全文
posted @ 2011-09-01 18:56 心翼 阅读(245) 评论(1) 推荐(1) 编辑

2011年8月23日

摘要: 标准库Vector类型使用需要的头文件:#include <vector>Vector:Vector 是一个类模板。不是一种数据类型。 Vector<int>是一种数据类型。一、 定义和初始化Vector<T> v1; //默认构造函数v1为空Vector<T> v2(v1);//v2是v1的一个副本Vector<T> v3(n,i);//v3包含n个值为i的元素Vector<T> v4(n); //v4含有n个值为0的元素二、 值初始化1> 如果没有指定元素初始化式,标准库自行提供一个初始化值进行值初始化。2> 阅读全文
posted @ 2011-08-23 23:47 心翼 阅读(194) 评论(0) 推荐(0) 编辑

2011年8月22日

摘要: 1、图形在窗体变化(如放大、缩小等操作)的时候,会有重绘现象,那样会擦除掉View上面所绘制的图形。这样,我们需要在View类的OnDraw()函数中写上相应的绘制代码。当然了,对于CDC类的绘制,我们就是需要将绘制的实现代码放在OnDraw()类里面。绘制里面,我们需要保存绘制的如"判定布尔值"、"起点"、"终点"这些数据,于是我们想到了用“集合类”来进行保存。实现方法如下:①、定义一个类,一个普通的类(非MFC类),然后写一个构造函数,这个构造函数的参数是我们需要保存的元素:声明如下:class CGraph{public: CG 阅读全文
posted @ 2011-08-22 21:46 心翼 阅读(344) 评论(0) 推荐(1) 编辑

摘要: 1、用DC在View上绘制图形的函数如下,点、线、矩形、椭圆总结如下四步: 1 void CtenView::OnLButtonUp(UINT nFlags, CPoint point) 2 { 3 // TODO: Add your message handler code here and/or call default 4 CClientDC dc(this); 5 CPen pn(m_nLineStyle,m_nLineWidth,m_clr); 6 CPen *pPen=dc.SelectObject(&pn); 7 //dc.SelectOb... 阅读全文
posted @ 2011-08-22 05:07 心翼 阅读(293) 评论(0) 推荐(1) 编辑