摘要:
1 模块化设计,面向接口开发。把握设计原则。2 不断重构设计和代码,一个大幅提高开发效率的好方法:不断重构既有代码和设计,为复用准备。同时也是优化。 阅读全文
摘要:
AfxBeginThread用户界面线程和工作者线程都是由AfxBeginThread创建的。现在,考察该函数:MFC提供了两个重载版的AfxBeginThread,一个用于用户界面线程,另一个用于工作者线程,分别有如下的原型和过程:用户界面线程的AfxBeginThread用户界面线程的AfxBeginThread的原型如下:CWinThread* AFXAPI AfxBeginThread( CRuntimeClass* pThreadClass, int nPriority, UINT nStackSize, DWORD dwCreateFlags, LPSECURITY_AT... 阅读全文
摘要:
内容: 1、基本概念 2、WINDOWS完成端口的特点 3、完成端口(Completion Ports )相关数据结构和创建 4、完成端口线程的工作原理 5、Windows完成端口的实例代码WINDOWS完成端口编程 摘要:开发网络程序从来都不是一件容易的事情,尽管只需要遵守很少的一些规则:创建socket,发起连接,接受连接,发送和接收数据,等等。真正的困难在于:让你的程序可以适应从单单一个连接到几千个连接乃至于上万个连接。利用Windows完成端口进行重叠I/O的技术,可以很方便地在Windows平台上开发出支持大量连接的网络服务程序。本文介绍在Windows平台上使用完成端口模型开发的基 阅读全文
摘要:
手把手教你玩转SOCKET模型之重叠I/O篇“身为一个初学者,时常能体味到初学者入门的艰辛,所以总是想抽空作点什么来尽我所能的帮助那些需要帮助的人。我也希望大家能把自己的所学和他人一起分享,不要去鄙视别人索取时的贪婪,因为最应该被鄙视的是不肯付出时的吝啬。” ----- 题记 By PiggyXP(小猪)前 言 其实我首先应该道歉,因为7月份的时候曾信誓旦旦的说要写一套关于SOCKET所有模型的入门文章以及配套代码,不过没想到后天竟然被美女所迷出去度假了,刚刚回来不久。。。。。。-_-b其实那些模型的配套代码我已经基本写完了,只是没写配套文字,不过我想还是先从稍微难一点的模型写起吧,因为其他. 阅读全文
摘要:
bss段,代码段及数据段,堆栈段的区别时间:2012-11-21 10:0772人阅读BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)通常是指用来存放程序执行代码的一块内存区域。这部分区域的大小在程序运行前就已经确定,并且内存区域通常属于只读,某些架构也允许代码段为 阅读全文
摘要:
不要轻视拷贝构造函数与赋值函数由于并非所有的对象都会使用拷贝构造函数和赋值函数,程序员可能对这两个函数 有些轻视。请先记住以下的警告,在阅读正文时就会多心: ?? 如果不主动编写拷贝构造函数和赋值函数,编译器将以“位拷贝” 的方式自动生成缺省的函数。倘若类中含有指针变量,那么这两个缺省的函数就隐 含了错误。以类String 的两个对象a,b 为例,假设a.m_data 的内容为“hello”, b.m_data 的内容为“world”。 现将a 赋给b,缺省赋值函数的“位拷贝”意味着执行b.m_data = a.m_data。 这将造成三个错误:一是b.m_data 原有的内存没... 阅读全文
摘要:
Rational Rose 2003 逆向工程转换C++源代码成UML类图1.ANSI C标准C逆向工程Reverse Engineer网上的关于从C++代码到UML类图生成过程的东西不少,找了个能用的,现在转下,以备不时之需。转来稍微调整了下内容,只关心使用。原出处http://siulyn.blog.163.com/blog/static/6245583620087252539344Rational Rose 2003逆向工程生成UML模型图这一节主要介绍用户如何使用Rose的逆向工程生成UML模型,并用来进行C++代码的结构分析。Rational Rose可以支持标准C++和Visual 阅读全文
摘要:
——《Effective C++》读书笔记4如果你只是声明一个空类,不做任何事情的话,编译器会自动为你生成: 一个默认构造函数 一个拷贝默认构造函数 一个默认拷贝赋值操作符 一个默认析构函数 这些函数只有在第一次被调用时,才会别编译器创建。所有这些函数都是inline和public的。默认的析构函数是非虚函数(除非基类有自己声明的虚析构函数)。而拷贝默认构造函数和默认拷贝赋值操作符知识是单纯将来源对象的每一个非静态成员拷贝到对象目标中(bitwise copy)。其中的默认拷贝赋值操作符只有在生成的代码合法并且有机会证明它有意义存在时才会生成。这就说明,如果你打算在一个“内含引用成员”或者“内 阅读全文
摘要:
手把手叫你玩转网络编程系列之三 完成端口(Completion Port)详解 ----- By PiggyXP(小猪)前言 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非常详细并且图文并茂的介绍了关于网络编程模型中完成端口的方方面面的信息,从API的用法到使用的步骤,从完成端口的实现机理到实际使用的注意事项,都有所涉及,并且为了让朋友们更直观的体会完成端口的用法,本文附带了有详尽注释的使用MFC编写的图形界面的示例代码。 我的初衷是希望写一份互联网上能找. 阅读全文
摘要:
很幽默的讲解六种Socket IO模型本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六:IOCP模型老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~~一:select模型老陈非常想看到女儿的信。以至于他每隔10分. 阅读全文
摘要:
二叉树习题// Tree2.cpp : 定义控制台应用程序的入口点。//#include #include "stdafx.h"using namespace std;typedef struct _TreeNode{char data;_TreeNode* lChild;_TreeNode* rChild;}TreeNode,*PTreeNode; void PreWalk(TreeNode* p) { if(p == NULL) return; coutdata lChild != NULL) coutdatalChild); if( p->rChild != N 阅读全文