自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

空空如也

MFC深入浅出

1_MFC概述 2_MFC和Win32 3_CObject类 4_消息映射的实现 5_MFC对象的创建 6_应用程序的退出 7_MFC的DLL 8_MFC的进程和线程

2011-11-21

More Effective C++(完整版).chm

1. 译序(侯捷) C++ 是一个难学易用的语言! C++ 的难学,不仅在其广博的语法,以及语法背後的语意,以及语意背後的深层思维,以及深层思维背後的物件模型;C++ 的难学,还在於它提供了四种不同(但相辅相成)的程式设计思维模式:procedural-based,object-based,object-oriented,generic paradigm。 世上没有白吃的午餐。又要有效率,又要有弹性,又要前瞻望远,又要回溯相容,又要能治大国,又要能烹小鲜,学习起来当然就不可能太简单。 在如此庞大复杂的机制下,万千使用者前仆後续的动力是:一旦学成,妙用无穷。C++ 相关书籍之多,车载斗量;如天上繁星,如过江之鲫。广博如四库全书者有之(The C++ Programming Language、C++ Primer),深奥如重山复水者有之(The Annotated C++ Reference Manual, Inside the C++ Object Model),细说历史者有之(The Design and Evolution of C++, Ruminations on C++),独沽一味者有之(Polymorphism in C++, Genericity in C++),独树一帜者有之(Design Patterns,Large Scale C++ Software Design, C++ FAQs),程式库大全有之(The C++ Standard Library),另辟蹊径者有之(Generic Programming and the STL),工程经验之累积亦有之(Effective C++, More Effective C++, Exceptional C++)。 这其中,「工程经验之累积」对已具C++ 相当基础的程式员而言,有著致命的吸引力与立竿见影的帮助。Scott Meyers 的Effective C++ 和More Effective C++ 是此类佼佼,Herb Sutter 的Exceptional C++ 则是後起之秀。 这类书籍的一个共通特色是轻薄短小,并且高密度地纳入作者浸淫於C++/OOP 领域多年而广泛的经验。它们不但开展读者的视野,也为读者提供各种C++/OOP 常见问题或易犯错误的解决模型。某些小范围主题诸如「在base classes 中使用virtual destructor」、「令operator= 传回*this 的reference」,可能在百科型C++ 语言书籍中亦曾概略提过,但此类书籍以深度探索的方式,让我们了解问题背後的成因、最佳的解法、以及其他可能的牵扯。至於大范围主题,例如smart pointers, reference counting, proxy classes,double dispatching, 基本上已属design patterns 的层级! 这些都是经验的累积和心血的结晶。 我很高兴将以下三本极佳书籍,规划为一个系列,以精装的形式呈现给您: 1. Effective C++ 2/e, by Scott Meyers, AW 1998 2. More Effective C++, by Scott Meyers, AW 1996 3. Exceptional C++, by Herb Sutter, AW 1999 不论外装或内容,中文版比其英文版兄弟毫不逊色。本书不但与原文本页页对译, 保留索引,并加上精装、书签条、译注、书籍交叉参考1、完整范例码2、读者服务3。 这套书对於您的程式设计生涯,可带来重大帮助。制作这套书籍使我感觉非常快 乐。我祈盼(并相信)您在阅读此书时拥有同样的心情。 侯捷2000/05/15 于新竹.台湾 [email protected] http://www.jjhou.com 1 Effective C++ 2/e 和More Effective C++ 之中译,事实上是以Scott Meyers 的另一个产品Effective C++ CD 为本,不仅资料更新,同时亦将CD 版中两书之交叉参考保留下来。这可为读者带来旁徵博引时的莫大帮助。 2 书中程式多为片段。我将陆续完成完整的范例程式,并在Visual C++,C++Builder,GNU C++ 上测试。请至侯捷网站(http://www.jjhou.com)下载。 3 欢迎读者对本书范围所及的主题提出讨论,并感谢读者对本书的任何误失提出指正。 来信请寄侯捷电子信箱([email protected])。

2011-11-21

Effective STL 中文版.chm

Effective STL 中文版(完整版) 作者: winter Winter总算找到《Effective STL》的完整中文版了,奉献给大家。书中作者解释了怎样结合STL组件来在库的设计得到最大的好处。这样的信息允许你对简单、直接的问题开发简单、直接的解决方案,也帮你对更复杂的问题设计优雅的方法。我描述了常见的STL使用错误,而且向你演示怎么避开它们。那帮助你躲开闪资源漏、不可移植的代码和未定义的行为。我讨论了优化代码的方法,所以你能使STL表现得像它应该的那样快速、光滑。 本书作者为Scott Meyers,由龚敏敏翻译。 前言 致谢 导读 容器 条款1:仔细选择你的容器 条款2:小心对“容器无关代码”的幻想 条款3:使容器里对象的拷贝操作轻量而正确 条款4:用empty来代替检查size()是否为0 条款5:尽量使用区间成员函数代替它们的单元素兄弟" 条款6:警惕C++最令人恼怒的解析 条款7:当使用new得指针的容器时,记得在销毁容器前delete那些指针 条款8:永不建立auto_ptr的容器 条款9:在删除选项中仔细选择 条款10:注意分配器的协定和约束 条款11:理解自定义分配器的正确用法 条款12:对STL容器线程安全性的期待现实一些 vector和string 条款13:尽量使用vector和string来代替动态分配的数组 条款14:使用reserve来避免不必要的重新分配 条款15:小心string实现的多样性 条款16:如何将vector和string的数据传给传统的API 条款17:使用“交换技巧”来修整过剩容量 条款18:避免使用vector<bool> 关联容器 条款19:了解相等和等价的区别 条款20:为指针的关联容器指定比较类型 条款21:永远让比较函数对相等的值返回false 条款22:避免原地修改set和multiset的键 条款23:考虑使用有序vector代替关联容器 条款24:当关乎效率时应该在map::operator[]和map-insert之间仔细选择 条款25:熟悉非标准散列容器 迭代器 条款26:尽量用iterator代替const_iterator,reverse_iterator和const_reverse_iterator 条款27:用distance和advance把const_iterator转化成iterator 条款28:了解如何通过reverse_iterator的base得到iterator 条款29:需要一个一个字符输入时考虑使用istreambuf_iterator 算法 条款30:确保目标区间足够大 条款31:了解你的排序选择 条款32:如果你真的想删除东西的话就在类似remove的算法后接上erase 条款33:提防在指针的容器上使用类似remove的算法 条款34:注意哪个算法需要有序区间 条款35:通过mismatch或lexicographical比较实现简单的忽略大小写字符串比较 条款36:了解copy_if的正确实现 条款37:用accumulate或for_each来统计区间 仿函数、仿函数类、函数等 条款38:把仿函数类设计为用于值传递 条款39:用纯函数做判断式 条款40:使仿函数类可适配 条款41:了解使用ptr_fun、mem_fun和mem_fun_ref的原因 条款42:确定less<T>表示operator< 使用STL编程 条款43:尽量用算法调用代替手写循环 条款44:尽量用成员函数代替同名的算法 条款45:注意count、find、binary_search、lower_bound、upper_bound和equal_range的区别 条款46:考虑使用函数对象代替函数作算法的参数 条款47:避免产生只写代码 条款48:总是#include适当的头文件 条款49:学习破解有关STL的编译器诊断信息 条款50:让你自己熟悉有关STL的网站 参考书目 附录A:区域设置和忽略大小写的字符串比较 附录B:在微软STL平台上的注意事项 词汇表 关于本电子书

2011-11-21

深入浅出MFC.chm -候捷

目 录 第0章 你一定要知道(导读)/1 这本书适合谁/1 你需要什么技术基础/1 你需要什么软硬件环境 让我们使用同一种语言 本书符号习惯/3 磁盘内容与安装 范例程序说明 第一篇 勿在浮砂筑高台 - 本书技术前提/3 第1章 Win32 程序基本观念/3 Win32程序开发流程/4 需要什么函数库(.LIB)/4 需要什么头文件(.H)/4 以消息为基础,以事件驱动之/5 一个具体而微的Win32 程序/5 程序进入点WinMain/10 窗口类之注册与窗口之诞生/11 消息循环/12 窗口的生命中枢—窗口函数/12 消息映射(Message Map)雏形/13 对话框的运作/14 模块定义文件(.DEF)/14 资源描述文件(.RC) /15 Windows 程序的生与死/15 闲置时间的处理:OnIdle /16 Console 程序/17 Console 程序与 DOS 程序的差别/17 Console 程序的编译链接/18 JBACKUP:Win32 Console 程序设计/19 MFCCON:MFC Console 程序设计/20 什么是C Runtime Library 的多线程版本/22 进程与线程(Process and Thread)/22 核心对象/22 一个进程的诞生与死亡/23 产生子进程/23 一个线程的诞生与死亡/24 以_beginthreadex取代CreateThread/25 线程优先权(Priority)/26 多线程程序设计实例/27 第2章 C++ 的重要性质 /29 类及其成员—谈封装(encapsulation)/29 基类与派生类—谈继承(Inheritance)/29 this 指针 /31 虚函数与多态(Polymorphism)/32 类与对象大解剖 /40 Object slicing 与虚函数 /42 静态成员(变量与函数) /44 C++程序的生与死:兼谈构造函数与析构函数 /46 四种不同的对象生存方式 /47 所谓“Unwinding”/48 运行时类型信息(RTTI) /48 动态生成(Dynamic Creation) /50 异常处理(Exception Handling) /50 Template /53 Template Functions /53 Template Classes /54 Templates 的编译与链接 /56 第3章 MFC六大关键技术之模拟/57 MFC类阶层/57 Frame1范例程序/57 MFC程序的初始化过程/59 Frame2范例程序/61 RTTI(运行时类型辨识)/65 CRuntimeClass与类型录网 /65 DECLARE_DYNAMIC / IMPLEMENT_DYNAMIC宏/66 Frame3 范例程序/71 IsKindOf(类型辨识)/77 Frame4 范例程序/77 Dynamic Creation(动态生成)/78 DECLARE_DYNCREATE / IMPLEMENT_DYNCREATE 宏 /79 Frame6 范例程序 /84 Persistence(永续生存)机制 /91 Serialize(数据读写) /91 DECLARE_SERIAL/IMPLEMENT_SERIAL 宏 /95 没有范例程序 Message Mapping(消息映射)/97 Frame7 范例程序/104 Command Routing(命令循环)/112 Frame8 范例程序/119 本章回顾/130 第二篇 欲善工事先利其器- Visual C++ 5.0 开发工具 第4章 Visual C++ - 整合性软件开发环境 安装与组成 四个重要的工具 内务府总管:Visual C++ 整合开发环境 关于project 关于工具设定 Source Browser Online Help 除错工具 VC++ 除错器 Exception Handling 程序代码产生器—AppWizard 东圈西点完成 MFC 程序骨干 Scribble Step0 威力强大的资源编辑器 Icon 编辑器 Cursor编辑器 Bitmap编辑器 ToolBar编辑器 VERSIONINFO资源编辑器 String Table编辑器 Menu 编辑器 Accelerator 编辑器 Dialog 编辑器 Console 程序的项目管理 第三篇 浅出MFC程序设计 第5章 总观Application Framework /130 什么是Application Framework /130 侯捷怎么说 /130 我怎么说 /131 别人怎么说 /133 为什么使用 Application Framework /134 Microsoft Foundation Class(MFC) /136 白头宫女话天宝:Visual C++与MFC/137 纵览MFC /138 General Purpose classes /138 Windows API classes /139 Application framework classes /140 High level abstractions /140 Afx全局函数 /140 MFC宏(macros) /141 MFC数据类型(data type)/142 第6章 MFC程序设计导论——MFC程序的生死因果 /144 不二法门:熟记MFC类的阶层架构 /144 需要什么函数库(.LIB) /146 需要什么含入文件(.H) /146 简化的MFC程序架构—以Hello MFC为例 /148 Hello 程序原始代码 /148 MFC 程序的来龙去脉 /152 我只借用两个类:CWinApp和CFrameWnd /152 CWinApp—取代WinMain的地位 /152 CFrameWnd—取代WndProc的地位 /154 引爆器—Application object /155 隐晦不明的 WinMain /156 AfxWinInit - AFX 内部初始化动作 /158 CWinApp::InitApplication /160 CMyWinApp::InitInstance /160 CFrameWnd::Create 产生主窗口(并注册窗口类)/161 奇怪的窗口类名称 Afx:b:14ae:6:3e8f/168 窗口显示与更新 /170 CWinApp::Run - 程序生命的活水源头/170 把消息与处理函数串接在一起:Message Map机制/172 来龙去脉总整理/173 Callback 函数/174 闲置时间(idle time)的处理:OnIdle/176 Dialog 与 Control/178 通用对话框(Common Controls)/178 本章回顾/179 第7章 简单而完整:MFC 骨干程序/180 不二法门:熟记 MFC 类的阶层架构/180 MFC程序的UI新风貌/180 Document/View 支撑你的应用程序 /181 利用Visual C++工具完成Scribble step0 /183 骨干程序使用哪些MFC类?/183 Document Template的意义 /187 Scribble的Document/View 设计/190 主窗口的诞生/192 工具列和状态列的诞生(Toolbar & Status bar)/193 鼠标拖放(Drag and Drop)/195 消息映射(Message Map)/196 标准菜单File/Edit/View/Window/Help/196 对话框 /199 改用CEditView /199 第四篇 深入MFC程序设计 /199 第8章 Document-View 深入探讨 /200 为什么需要 Document-View(形而上)/200 Document /200 View /201 Document Frame(View Frame)/202 Document Template /202 CDocTemplate 管理 CDocument / CView / CFrameWnd /202 Scribble Step1 的 Document(数据结构设计) /207 MFC Collection Classes 的选用 /207 Template-Based Classes /208 Template-Based Classes 的使用方法 /209 CScribbleDoc 的修改 /209 SCRIBBLEDOC.H /211 SCRIBBLEDOC.CPP /212 文件:一连串的线条 /215 CScribbleDoc 的成员变量 /215 CObList /215 CScribbleDoc 的成员函数 /215 线条与坐标点 /217 CStroke 的成员变量 /217 CArray<CPoint, CPoint> /217 CStroke 的成员函数 /217 Scribble Step1 的 View:数据重绘与编辑 /218 CScribbleView 的修改 /218 SCRIBBLEVIEW.H /219 SCRIBBLEVIEW.CPP /220 View 的重绘动作—GetDocument和OnDraw /222 CScribbleView的成员变量 /222 CScribbleView的成员函数 /223 View 与使用者的交谈(鼠标消息处理实例)/223 ClassWizard 的辅佐 /224 WizardBar 的辅佐 /225 Serialize:对象的文件读写 /225 Serialization以外的文件读写动作 /226 台面上的Serialize动作 /227 台面下的Serialize写文件奥秘 /231 台面下的Serialize读文件奥秘 /233 DYNAMIC / DYNCREATE / SERIAL 三宏/240 Serializable 的必要条件/244 CObject 类/245 IsKindOf/245 IsSerializable/245 CObject::Serialize/245 CArchive类/246 operator<<和operator>>/246 效率考虑/250 自定 SERIAL宏给抽象类使用 /250 在CObList中加入 CStroke 以外的类 /250 Document与View 交流—为Scribble Step4做准备/254 第9章 消息映射与命令循环 /255 到底要解决什么 /255 消息分类 /256 万流归宗 Command Target(CCmdTarget)/256 三个奇怪的宏,一张巨大的网 /257 DECLARE_MESSAGE_MAP 宏/257 消息映射网的形成:BEGIN_/ON_/END_ 宏 /258 米诺托斯(Minotauros)与西修斯(Theseus)/261 两万五千里长征—消息的流窜 /265 直线上溯(一般 Windows 消息) /265 拐弯上溯(WM_COMMAND 命令消息) /268 罗塞达碑石:AfxSig_xx 的秘密/273 Scribble Step2:UI 对象的变化/277 改变菜单/277 改变工具列/278 利用ClassWizard连接命令项识别代码与命令处理函数/280 维护UI对象状态(UPDATE_COMMAND_UI)/282 本章回顾/285 第10章 MFC 与对话框/285 对话框编辑器/286 利用ClassWizard 连接对话框与其专属类/288 PENDLG.H /290 PENDLG.CPP /291 对话框的消息处理函数 /292 MFC中各式各样的MAP /294 对话框数据交换与查核(DDX & DDV)/294 MFC中各式各样的DDx_函数 /297 如何唤起对话框 /297 本章回顾 /299 第11章 View功能之加强与重绘效率之提升/299 同时修改多个 Views:UpdateAllViews 和 OnUpdate/300 在View中定义一个 hint/302 把hint传给 OnUpdate/304 利用hint增加重绘效率/305 可卷动的窗口:CScrollView /307 大窗口中的小窗口:Splitter /313 分裂窗口的功能 /313 分裂窗口的程序概念/314 分裂窗口之实现/315 本章回顾 /317 第12章 印表与预览/317 概观/317 打印动作的后台原理 /320 MFC预设的打印机制 /324 Scribble打印机制的补强 /333 打印机的页和文件的页 /333 配置GDI绘图工具 /334 尺寸与方向:关于映射模式(坐标系统)/334 分页/336 表头(Header)与表尾/338 动态计算页代码/338 打印预览(Print Preview)/339 本章回顾/339 第13章 多重文件与多重显示 /339 MDI 和 SDI /340 多重显像(Multiple Views) /340 窗口的动态分裂 /342 窗口的静态分裂 /343 CreateStatic 和 CreateView /343 窗口的静态三叉分裂 /345 Graph 范例程序 /346 静态分裂窗口之观念整理 /354 同源子窗口 /355 CMDIFrameWnd::OnWindowNew/355 Text 范例程序 /356 非制式作法的缺点 /361 多重文件 /361 新的Document类 /362 新的Document Template /363 新的UI系统 /364 新文件的文件读写动作 /365 第14章 MFC多线程程序设计(Multi-threaded Programming in MFC)/367 从操作系统层面看线程/367 三个观念:模块、进程、线程/367 线程优先权(Priority) /368 线程排程(Scheduling) /369 Thread Context /370 从程序设计层面看线程 /371 Worker Threads 和UI Threads /371 错误观念 /372 正确态度 /372 MFC多线程程序设计 /372 探索CwinThread/372 产生一个Worker Thread/374 产生一个UI Thread /375 线程的结束/376 线程与同步控制 /376 MFC多线程程序实例 /378 第15章 定制一个AppWizard /380 到底Wizard是什么? /381 Custom AppWizard 的基本操作 /381 剖析AppWizard Components /385 Dialog Templates 和Dialog Classes /385 Macros /386 Directives /387 动手修改Top Studio AppWizard/387 利用资源编辑器修改IDD_CUSTOM1对话窗画面/387 利用ClassWizard 修改CCustom1Dlg类 /388 改写OnDismiss 虚函数,在其中定义macros /389 修改text template/389 Top Studio AppWizard执行结果/390 更多的信息/390 第16章 站上众人的肩膀—使用Components和ActiveX Controls/391 什么是Component Gallery /391 使用 Components /393 Splash screen /393 System Info for About Dlg /394 Tips of the Day /394 Components实际运用:ComTest 程序/395 修改ComTest 程序内容 /409 使用ActiveX Controls /411 ActiveX Control 基础观念:Properties、Methods、Events/411 ActiveX Controls 的五大使用步骤/412 使用“Grid”ActiveX Control:OcxTest 程序/413

2010-07-19

windows编程100例(MFC)

包括了100个用MFC实现的例程代码,是大家学习MFC不错的学习资源,绝对值得下载。

2008-03-06

空空如也

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

TA关注的人

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