DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::
上一页 1 ··· 380 381 382 383 384 385 386 387 388 ··· 474 下一页

2013年11月29日

摘要: 《白手起家Win32SDK应用程序》目录《白手起家Win32SDK应用程序》第一篇、预备知识第二篇、创建Win32工程和主函数第三篇、增加一个回调函数第四篇、注册一个窗口类第五篇、利用已注册的窗口类来创建一个窗口第六篇、显示你创建的窗口第七篇、获取消息及对消息缺省处理第八篇、关闭窗口的同时退出程序第九篇、窗口标题栏上显示自定义图标(手动编辑代码)第一篇、预备知识 白云小飞1 说在前面由于VC6及MFC的特点,我们许多人从标准C++学习到VC6MFC应用程序的编程学习的过度会有一个很大的夸跃,从而感到非常的吃力。究其原因之一:MFC类库设计虽然精巧,但我们在使用MFC设计程序时,会发现MFC到处 阅读全文
posted @ 2013-11-29 19:15 DoubleLi 阅读(7358) 评论(0) 推荐(3)

2013年11月28日

摘要: 在使用C++编程的过程当中,常常需要对类成员进行初始化,通常的方法有两种:第一种方法:CMYClass::CSomeClass(){ x=0; y=1;}第二种方法:CSomeClass::CSomeClass() : x(0), y(1){}本文将要探讨这两种方法的异同以及如何使用这两种方法。 从技术上说,第二种方法比较好,但是在大多数情况下,两者实际上没有什么区别。第二种语法被称为成员初始化列表,之所以要使用这种语法有两个原因:一个原因是必须这么做,另一个原因是出于效率考虑。 让我们先看一下第一个原因——必要性。设想你有一个类成员,它本身是一个类或者结构,而且只有一个带一个参数... 阅读全文
posted @ 2013-11-28 10:04 DoubleLi 阅读(690) 评论(0) 推荐(0)

摘要: 在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的。因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有效的发到对方,使用了优化方法(Nagle算法),将多次间隔较小且数据量小的数据,合并成一个大的数据块,然后进行封包。这样,接收端,就难于分辨出来了,必须提供科学的拆包机制。 对于UDP,不会使用块的合并优化算法,这样,实际上目前认为,是由于UDP支持的是一对多的模式,所以接收端的skbuff(套接字缓冲区)采用了链式结构来记录每一个到达的UDP包,在每个UDP包中就有了消息头(消息来源地址,端口等 阅读全文
posted @ 2013-11-28 10:01 DoubleLi 阅读(999) 评论(0) 推荐(0)

摘要: 这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下:一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.二 .什么时候需要考虑粘包问题?1:如果利用tcp每次发送数据,就与对方建立连接,然后双方发送完一段数据后,就关闭连接,这样就不会出现粘包问题(因为只有一种包结构,类似 阅读全文
posted @ 2013-11-28 09:59 DoubleLi 阅读(839) 评论(0) 推荐(0)

摘要: 当前在网络传输应用中,广泛采用的是TCP/IP通信协议及其标准的socket应用开发编程接口(API)。TCP/IP传输层有两个并列的协议:TCP和UDP。其中TCP(transport control protocol,传输控制协议)是面向连接的,提供高可靠性服务。UDP(user datagram protocol,用户数据报协议)是无连接的,提供高效率服务。在实际工程应用中,对可靠性和效率的选择取决于应用的环境和需求。一般情况下,普通数据的网络传输采用高效率的udp,重要数据的网络传输采用高可靠性的TCP。在应用开发过程中,笔者发现基于TCP网络传输的应用程序有时会出现粘包现象(即发送方 阅读全文
posted @ 2013-11-28 09:56 DoubleLi 阅读(849) 评论(0) 推荐(0)

摘要: 转载:http://hi.baidu.com/ah__fu/blog/item/9c5b1236934f84240b55a92b.html下面是他写的无锁队列的文章:Michael &Scott 无锁队列 C++ 实现:http://www.cnblogs.com/napoleon_liu/archive/2010/08/07/1794566.html 这个MS-Queue实现了安全的多个线程入队,多个线程出队。不过因为阶段需要new出来,会有一点影响性能。GCC 之 cas和cas2:http://www.cnblogs.com/napoleon_liu/articles/2006428.h 阅读全文
posted @ 2013-11-28 09:54 DoubleLi 阅读(514) 评论(0) 推荐(0)

摘要: MFC中有不少的全局函数,方便在不同对象中获取不同的内容或创建不同的对象。主要全局函数有:AfxWinInit() AfxBeginThread() AfxEndThread() AfxFormatString1() AfxFormatString2()AfxMessageBox() AfxOutPutDebugString() AfxGetApp() AfxGetMainWnd() AfxGetInstance()AfxRegisterClass()这些函数从名称上可见豹斑(功能)。本文是学习深入浅出MFC后的第一个笔记,解析AfxGetApp()函数在AFXWIN.H中是这么定义的: CW 阅读全文
posted @ 2013-11-28 09:52 DoubleLi 阅读(4556) 评论(0) 推荐(0)

摘要: MFC的设计者们在设计MFC时,紧紧把握一个目标,那就是尽可能使得MFC的代码要小,速度尽可能快。为了这个目标,他们使用了许多技巧,其中很多技巧体现在宏的运用上,实现MFC的消息映射的机制就是其中之一。 同MFC消息映射机制有关的宏有下面几个: DECLARE_MESSAGE_MAP()宏 BEGIN_MESSAGE_MAP(theClass,baseClass)和END_MESSAGE_MAP()宏 弄懂MFC消息映射机制的最好办法是将找出一个具体的实例,将这些宏展开,并找出相关的数据结构。 DECLARE_MESSAGE_MAP() DECLARE_MESSAGE_MAP()宏... 阅读全文
posted @ 2013-11-28 09:51 DoubleLi 阅读(468) 评论(0) 推荐(0)

摘要: 一、什么是窗口类 在Windows中运行的程序,大多数都有一个或几个可以看得见的窗口,而在这些窗口被创建起来之前,操作系统怎么知道该怎样创建该窗口,以及用户操作该窗口的各种消息交给谁处理呢?所以VC在调用Windows的API(CreateWindow或者CreateWindowEx)创建窗口之前,要求程序员必须定义一个窗口类(不是传统C++意义上的类)来规定所创建该窗口所需要的各种信息,主要包括:窗口的消息处理函数、窗口的风格、图标、鼠标、菜单等。其定义如下:typedefstructtagWNDCLASSA(注:该结构为ANSII版本){UINTstyle;WNDPROClpfnWndP. 阅读全文
posted @ 2013-11-28 09:50 DoubleLi 阅读(1237) 评论(0) 推荐(0)

摘要: 话题引入:在C语言时代,当人们使用纯粹的C开发windows应用程序时,只需要通过窗口句柄HWND【HWND是WND的内存句柄,而WND是Windows是一个内部私有数据结构,存储着窗口的相关信息:尺寸信息、标题信息等。一般来说开发人员无法访问这个数据结构,不过可以以HWND为参数调用windows的API函数如:GetWindowRect、GetWindowText等获得对其的访问】即可完成有关窗口的操作。MFC类是C++类机制,MFC的类通过C++的对象方法将窗口的句柄封装起来。存在着窗口句柄(Windows对象)到MFC中C++窗口对象(MFC对象)之间的映射机制,该机制保证了HWND与 阅读全文
posted @ 2013-11-28 09:49 DoubleLi 阅读(575) 评论(0) 推荐(0)

上一页 1 ··· 380 381 382 383 384 385 386 387 388 ··· 474 下一页