自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (6)
  • 收藏
  • 关注

转载 一、进制数

比较常用的数制是十进制、二进制、八进制和十六进制。二进制就是逢二进一,每位都是小于二的数,其他进制类推。计算机存储数据使用的是二进制编码。        对于一个R进制的数X来说,其值可以通过下面的公式算出来:,前面是整数部分,后面是小数部分,m,n为正整数,表示第i位上的数字乘以进制数的i次方。比如二进制数(11.01)2=1×21+1×20+0×2-1+1×2-2=3.25。当R进制转

2015-03-31 16:49:09 668

原创 0、Windows基础

1.11 win2.0增强了键盘和鼠标接口,特别是加入了菜单和对话框。 GUI是个人计算机工业史上集各方面技术大成于一体的重要产物。 Windows上执行的程序可共享「动态链接库」的文件中的例程。 Windows包括一个机制,能够在执行时连结使用动态链接库中例程的程序。 Windows自身基本上就是一个动态链接库的集合。1.12 windows运作机制的核心是一个“动态链接”的概念,w

2015-03-31 14:12:54 419

原创 8.1、鼠标

一、鼠标基础          通常我们认为键盘便于输入我操作文字数据,而鼠标便于画图和操作图形对象。我们可以使用GetSystemMetrics函数来确认鼠标是否存在,该函数具体请查阅MSDNfMouse=GetSystemMetrics(SM_MOUSEPRESENT);同样,确定鼠标上按键个数:cButtons=GetSystemMetircs(SM_CMOUSEBUTT

2015-03-30 14:59:30 494

转载 解决外部符号错误:_main,_WinMain@16,__beginthreadex

(转)error LNK2001: unresolved external symbol _main解决办法解决外部符号错误:_main,_WinMain@16,__beginthreadex 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有柚煤孟钅坎问? 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmt

2015-03-28 10:05:19 390

翻译 条款43、学习处理模版化基类内的名称

考虑以下代码,功能为发送不同信息至不同部门,采用模版方法。class CompanyA{ public: void sendClearT(const std::string&msg); void sendEncrypt(cons std::string& msg);};class CompanyB{ public:

2015-03-27 15:54:24 386

转载 7.1、键盘

键盘和鼠标是两个标准的用户输入源,在一些交叠的操作中通常相互补充使用。1.1输入方式:以消息的形式传递给程序的窗口处理过程。Windows用8种不同的消息来传递不同的键盘事件。这好像有点多,但是程序可以忽略其中至少一半的消息而不会有任何问题。并且,在大多数情况下,这些消息中包含的键盘信息会多于程序所需要的。处理键盘的部分工作就是识别出哪些消息是重要的,哪些是不重要的。 1.2扫

2015-03-26 14:54:35 623

转载 MFC中OnDraw与OnPaint的区别

OnPaint是WM_PAINT消息的消息处理函数,在OnPaint中调用OnDraw,一般来说,用户自己的绘图代码应放在OnDraw中。OnPaint()是CWnd的类成员,负责响应WM_PAINT消息。OnDraw()是CVIEW的成员函数,没有响应消息的功能.当视图变得无效时(包括大小的改变,移动,被遮盖等等),Windows发送WM_PAINT消息。该视图的OnPaint 处理函数通过创建

2015-03-26 14:47:43 514

翻译 条款42、typename的双重意义

如下:templateclass Widget; //使用”class”templateclass Widget; //使用”typename”虽然使用了不同的关键字,但从C+的角度来说,声明模板参数时,关键字class 和typename意义完全相同。然而C+并不把class和typename视为等价。有时你一定得使用typename. 考虑下面一个函数模版,接受一个STL兼容

2015-03-25 19:10:35 539

原创 构造函数调用顺序

#include<iostream>using namespace std;class Base{public: Base(int i) {cout<<i; cout<<"Base调用"<<endl;}};class Base1:virtual public Base{public: Base1(int i,int j=0):Base(j){cout<<i; cout<

2015-03-25 09:13:14 404

翻译 条款41、隐式接口和编译期多态

C++ template最初的发展动机:建立“类型安全type safe”的容器如vector,lis,map.后面随着使用的增多,我们发现模版有能力完成更多可能的变化。 容器虽好,但泛型编程(generic programming)更好:代码和其所处理的对象类型彼此独立。STL算法如for_each,find等就是这类编程的成果。 于是导出了模板元编程(tmplate metaprogr

2015-03-24 19:17:42 470

原创 6.1、GDI映射模式

一、设备坐标和逻辑坐标在Windows应用程序中,有两种坐标系统:设备坐标和逻辑坐标。 设备坐标:又称物理坐标,指输出设备上的坐标。通常将屏幕上的设备坐标称为屏幕坐标,以像素为度量单位。水平轴(X轴)的正方向从左向右,垂直轴(Y轴)的方向从上向下,并且整个坐标轴的单位和方向固定不变。windows包括三种设备坐标,以满足不同需要:1、客户区坐标  2、全窗口坐标  3、屏幕坐标 逻辑坐

2015-03-23 15:42:22 668

翻译 条款40、明智地使用多重继承

现在考虑多重继承MI(multiple inheritance)。程序可能从一个以上的基类继承相同的名称(如函数 typedef等)。那会导致较多歧义。考虑以下代码:class A{ public: void fun();….};class B{ private: bool fun()const;};cla

2015-03-21 15:06:25 442

转载 5.2、双缓冲绘图

一、双缓冲原理 我们知道,如果窗体在响应WM_PAINT消息的时候要进行复杂的图形处理,那么窗体在重绘时由于过频的刷新而引起闪烁现象。为了解决这个问题,我们利用双缓冲技术进行绘图。所谓双缓冲技术,就是将资源加载到内存,然后复制内存数据到设备DC(比较快),避免了直接在设备DC上绘图(比较慢)。我们可以把windows桌面比作一个黑板.1、Windows 绘图原理 我们在 Windo

2015-03-20 16:22:44 554

转载 5.1、GDI图形接口

一、GDI简介 GDI(GraphicsDevice Interface),即图形设备接口。主要负责系统与绘图程序之间的信息交换,处理所有Windows程序的绘图输出。 在window操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI提供的函数就可以方便的在屏幕、打印机等输出设备输出图形,文本等操作。GDI使程序员无需关心硬件设备及驱动,就可以将应用程序的输出转换为硬

2015-03-20 09:11:26 905

翻译 条款39、明智审慎地使用private继承

TK32论证了public继承是is-a关系。类student继承自类Person。于是在编译必要时student暗自转变为Person。现在考虑private继承:class Person{….};class Student:private Person{….};void eat(const Person& p); //任何人都会吃void study(const Stude

2015-03-19 19:22:47 752

转载 4.2、消息映射机制原理

一、消息映射原理 SDK中每个窗口类都有一个窗口过程,与之不同的是:所有MFC窗口都有一个默认的窗口过程。SDK中没有消息映射的概念,它有明确的回调函数,通过一个switch语句去判断收到的消息然后进行消息处理。对于消息映射,这里有不同的几种猜想: 1、最直截了当的想法是、消息映射就是用一个数据结构把“消息”和“响应函数”串连起来,当窗口感知消息时,就对结构进行查找,找到相应的消息

2015-03-18 16:53:00 474

翻译 条款38、根据复合塑模has-a或“根据某物实现出”

复合(compsition)是这样一种关系:某种类型对象内含其他类型对象。如:class Address{….};class PhoneNun{…};class Person{ private: //合成物成分 std::stringname; PhoneNum phone; Address addr;};上面Person对象由其他三部

2015-03-18 16:43:55 547

翻译 条款36、绝不重新定义继承而来的缺省参数值

为简化问题,只能定义两种函数:虚函数和非虚函数。从前面我们知道,重定义继承而来的非虚函数永远是错误的。所以我们讨论“继承一个带有缺省参数值的虚函数”。 理由十分明确:1、虚函数系动态绑定(又称前期绑定)  2、缺省参数值是静态绑定(后期绑定)。对象的所谓静态类型,就是它在程序中被声明时所采用的类型。考虑以下:class Shape{ public:enum S

2015-03-17 10:43:56 699

翻译 条款36、绝不重新定义继承而来的非虚函数

考虑以下代码,D公有派生自B,B有一个成员函数mf.class B{public:void mf();…};class D: public B{…};D x; //D类对象B* pb=&x; //行为1pb->mf();D* pd=&x; //行为2pd->f(); 很明显行为1、2调用会相同,都是基类的mf,理应如此。但如果mf是非虚函数,而且D有定义自己的m

2015-03-14 15:39:13 659

翻译 条款35、考虑虚函数以外的选择

假设一个人物类,它有一个表现健康程度的的成员函数heath,返回一个数值表示人物健康程度。不同人物可能有不同的计算健康程度的方法,将其声明为虚函数是再明白不过的方法:class Character{public: virtual int heath () const; //返回健康指数,派生类可重载…} health方法未声明为纯虚,暗示有计算健康指数的缺省方法。这个

2015-03-14 10:07:44 406

转载 4.1内部运行机制-消息映射

一、一些基本概念1、几个重要头文件afx.h  绝大部分类的声明头文件afxwin.h 包含了afx.h和windows.hafxext.h -提供了扩展窗口类的支持(工具栏,状态栏等2、使用MFC做自己的库程序(MFCAppWizard dll)规则动态库:可以被任意程序调用扩展动态库:只能被支持MFC的程序调用3、MFC窗口程序

2015-03-13 16:24:47 571

翻译 条款34、区分接口继承和实现继承

public继承由两部分组成:函数接口继承和函数实现继承。 设计类时,我们有不同的需求:1、Derived只继承成员函数的接口(也就是声明) 2、Derived同时继承接口和实现,但又能覆写继承的实现(override)  3、Derived同时继承接口和实现,但不允许覆写任何东西。为表现上面的差异,考虑以下代码:class Shape{public: virtu

2015-03-13 14:56:39 478

转载 2015产品校招——阿里腾讯百度360小米面经

导语:本文作者也是今年的一位应届生,经历过了校招找工作的波折与纠结,在此分享下自己的经验与教训。希望分享的经验可以帮到还在找工作的童鞋以及学弟学妹们。  校招按过程可以分为网申阶段、笔试阶段和面试阶段,此外还有内推以及实习转正这些额外的方式。所有这些公司都是实习留下来的话几率最大,所以强烈推荐先去找份实习。有了实习经验再找工作也会容易很多~  1.阿里巴巴  网申阶

2015-03-11 15:19:20 1390

翻译 条款33、避免遮掩继承而来的名称

我们都知道,内层作用域会掩盖外层作用域的名称。至于名称类型是否相同并不重要,如x的int掩盖x的double. 现在引入继承,当派生类成员函数涉及基类的某物(成员函数,typedef,或成员变量),编译器可以找出所涉及的东西,派生继承了声明于基类的所有东西,实际运作方式是:Drived作用域嵌套于Base类作用域内。如下:class Base{private: int

2015-03-11 12:02:43 395

翻译 条款32、确定你的public继承塑模出is-a关系

bublic继承意味着“is-a”关系。即一个D类对象(Derived)同时也是一个B类对象(Base)。反之则不成立。B相比D更一般化,而D相对B更特殊化。考虑如下:class Person {…};class student: public Person{…}; 承上,C+中任何函数期望获得类型Person(指针或引用)的实参,也愿意接受Student对象(指或引)、void eat

2015-03-10 20:32:06 484

翻译 条款31:将文件间的编译依赖关系降至最低

假设修改calss的实现文件,不是修改class接口,只是实现中的private成分。然后你会发现全部编译和重新连接了。这些问题是因为C++没有“将接口从实现中分离”做得足够好。class的定义不只是描述了class接口,还包括实现细节。如下代码:class Person{ public: Person(conststring& nam

2015-03-10 09:39:51 487

翻译 条款30:透彻了解inlining的里里外外

inline函数比宏好用得多(TK2),编译器通常被设计用来浓缩那些“不含函数调用”的代码,所以编译器有力能对inline函数执行语境相关最优化。 但inline也有另一面,对函数调用都以函数本体替换之,会增加目标代码的大小(object code)。在内存有限的环境中,造成的代码膨胀会导致换页行为,导致效率损失。换言之,如果inline函数本体很小,编译器针对“函数本体”产生比“函数调用

2015-03-08 15:05:25 402

翻译 条款29:为“异常安全”而努力是值得的

考虑一个背景图案GUI菜单类,运用于多线程环境。以mutex(互斥器)作为并发控制。如下代码:class Menu{ public: ... voidchangeBG(std::istream& imgSrc); //改变背景 ... priv

2015-03-07 21:44:23 365

Visual AssistX for VS2017

找了好多个版本的番茄助手,要么不能用,要么分太多,但最后还是找了一个,亲测能用。适用于VS2017及以下的vs版本。资源下载没有0积分设置,最低积分是1分,供有需求的朋友下载。

2019-01-22

深入应用C++11 代码优化与工程级应用完整版 pdf

找了好些链接,要么不完整,要么分太高。看到好多下载链接都要10多分才能下,下载后特意上传了下。资源分好像最低要2分,选了最低的。这个版本是没带目录的,先上传下,后续看完再更新增加的目录书签版本,希望帮助到大家。

2018-02-27

TCP_UDP测试工具

TCP_UDP测试工具 包含TCP,udp服务器,支持创建tcp连接,udp连接等

2017-06-10

TCP-UDP调试助手

该工具包含TCP服务器, UDP服务器,TCP及UDP客户端及相关的网络抓包工具等,便于日常学习开发使用

2017-06-10

WINCE下CH340,CH341驱动

WINCE下CH340,CH341驱动

2017-06-01

FileTool.ext

VC6.0和Visio都是开发者常用的工具,但是他们却存在冲突。当两个软件同时安装在一台机器上时,如果在 VC6.0中的“FileView”右键点“add files to folder”或者在Project菜单点Add to project --Files都会报devshl.dll出错。

2014-11-17

空空如也

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

TA关注的人

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