- 博客(34)
- 收藏
- 关注
转载 const
面向对象是C++的重要特性. 但是c++在c的基础上新增加的几点优化也是很耀眼的就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重const1. 限定符声明变量只能被读 const int i=5; int j=0; ... i=j; //非法,导致编译错误 j=i; //合法2. 必须初始化 const int i=5
2009-11-03 17:02:00
421
转载 VS2005 常用快捷键
2007-04-10 15:32VS2005 常用快捷键仁者无敌2006-08-02 20:20:16Shift+Alt+Enter: 切换全屏编辑Ctrl+B,T / Ctrl+K,K: 切换书签开关Ctrl+B,N / Ctrl+K,N: 移动到下一书签Ctrl+B,P: 移动到上一书签Ctrl+B,C: 清除全部标签Ctrl+I: 渐进式搜索Ctrl+Sh
2009-11-03 13:53:00
390
转载 类中的static关键字
面向对象的static关键字(类中的static关键字) 1、静态数据成员在类内数据成员的声明前加上关键字static,该数据成员就是类内的静态数据成员。先举一个静态数据成员的例子。可以看出,静态数据成员有以下特点: 对于非静态数据成员,每个类对象都有自己的拷贝。而静态数据成员被当作是类的成员。无论这个类的对象被定义了多少个,静态数据成员在程序中也只有一份拷 贝,由该类型的所有对象共享
2009-11-02 09:35:00
518
原创 C++中的显式构造函数
以两个C++的小例子来说明怎样通过使用显式构造函数来防止隐式转换。 有如下一个简单的复数类:class ClxComplex{public: ClxComplex(double dReal = 0.0, double dImage = 0.0) { m_dReal = dReal; dImage = dImage; } double Get
2009-10-29 17:27:00
1864
转载 tinyxml使用笔记与总结
tinyxml使用笔记与总结 在TinyXML中,根据XML的各种元素来定义了一些类: TiXmlBase:整个TinyXML模型的基类。 TiXmlAttribute:对应于XML中的元素的属性。 TiXmlNode:对应于DOM结构中的节点。 TiXmlComment:对应于XML中的注释。 TiXmlDeclar
2009-10-24 16:50:00
1019
转载 调试技巧之调用堆栈
简单介绍调试是程序开发者必备技巧。如果不会调试,自己写的程序一旦出问题,往往无从下手。本人总结10年使用VC经验,对调试技巧做一个粗浅的介绍。希望对大家有所帮助。今天简单的介绍介绍调用堆栈。调用堆栈在我的专栏的文章VC调试入门提了一下,但是没有详细介绍。首先介绍一下什么叫调用堆栈:假设我们有几个函数,分别是function1,function2,function3,funtion4,且
2009-10-21 10:51:00
701
转载 glBegin()用法小结
glBegin()用法小结1.在glBegin()和glEnd()之间可调用的函数函数 函数意义 glVertex*() 设置顶点坐标 glColor*() 设置当前颜色 glIndex*() 设置当前颜色表 glNormal*() 设置法向坐标 glEvalCoord*() 产生坐标 glCallList(),glCallLists() 执行显示列表 glTexCoord
2009-10-19 12:00:00
8443
3
转载 临界区
本文假定您熟悉 Win32、C++ 和多线程处理。下载本文的代码:CriticalSections.exe (415KB) 摘要临界区是一种防止多个线程同时执行一个特定代码节的机制,这一主题并没有引起太多关注,因而人们未能对其深刻理解。在需要跟踪代码中的多线程处理的性能时,对 Windows 中临界区的深刻理解非常有用。 本文深入研究临界区的原理,以揭示在查找死锁和确认性能问题过程中的
2009-10-09 18:01:00
2059
翻译 CloseHandle()
CloseHandle() CloseHandle函数 BOOL CloseHandle( HANDLE hObject ); 参数 hObject :代表一个已打开对象handle。 返回值 TRUE:执行成功; FALSE:执行失败,可以调用GetLastError()获知失败原因。 函数说明: 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等
2009-10-09 16:24:00
537
转载 select()
select() 简述: 确定一个或多个套接口的状态,如需要则等待。 #include int PASCAL FAR select( int nfds, fd_set FAR* readfds, fd_set FAR* writefds, fd_set FAR* exceptfds, const struct timeval FAR* timeout); nfds:本参数忽略,
2009-09-29 16:19:00
785
转载 WSASend()
WSASend() 简述:在一个已连接的套接口上发送数据。 #include int WSAAPI WSASend ( SOCKET s, LPWSABUF lpBuffers, DWORD dwBufferCount, LPDWORD lpNumberOfBytesSent, int iFlags, LPWSAOVERLAPPED lpOverlapped, L
2009-09-29 14:26:00
6732
转载 WSAEventSelect()
WSAEventSelect() 简述:确定与所提供的FD_XXX网络事件集合相关的一个事件对象。 #include int WSAAPI WSAEventSelect ( SOCKET s, WSAEVENT hEventObject,
2009-09-29 11:23:00
590
转载 WSAEnumNetworkEvents()
WSAEnumNetworkEvents() 简述:检测所指定的套接口上网络事件的发生。 #include int WSAAPI WSAEnumNetworkEvents ( SOCKET s, WSAEVENT hEventObject, LPWSANETWORKEVENTS lpNetworkEvents, LPINT lpiCount); s:标识套接口的描述字。 hEv
2009-09-29 11:12:00
2679
转载 ResetEvent()
ResetEvent ResetEvent 这个函数把指定的事件对象设置为无信号状态。 BOOL ResetEvent( HANDLE hEvent ); 参数说明: hEvent [in] 指向事件对象的句柄.由 CreateEvent or OpenEvent 函数返回。 这个句柄需要拥有EVENT_MODIFY_STATE 访问权限. 函数成功,返回非0值,否则返回
2009-09-29 10:47:00
607
转载 waiforsingleobject()
WaitForSingleObject的用法 WaitForSingleObject的用法 DWORD WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); 参数hHandle是一个事件的句柄,第二个参数dwMilliseconds是时间间隔。如果事件是有信号状态返回WAIT_OBJE
2009-09-29 10:43:00
1853
转载 CreateThread()
微软在Windows API中提供了建立新的线程的函数CreateThread, 概述: 当使用CreateProcess调用时,系统将创建一个进程和一个主线程。CreateThread将在主线程的基础上创建一个新线程,大致做如下步骤: 1在内核对象中分配一个线程标识/句柄,可供管理,由CreateThread返回 2把线程退出码置为STILL_ACTIVE,把线程挂起
2009-09-28 16:00:00
1084
转载 WSASetEvent()
简述:将指定的事件对象状态设置为有信号。 #include BOOL WSAAPI WSASetEvent( WSAEVENT hEvent ); hEvent:标识一个开放的事件对象句柄。 返回值: 如果函数成功,返回真TRUE。 如果函数失败,返回假FALSE。可通过调用WSAGetLastError()来获取进一步的错误信息。 错误代码: W
2009-09-28 15:04:00
1379
转载 EnterCriticalSection()
VC声明 VOID EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection // critical section ); 函数功能 申请进入临界对象 参数说明 lpCriticalSection 临界对象指针
2009-09-28 12:08:00
563
转载 线程同步之临界区
在程序中使用多线程时,一般很少有多个线程能在其生命期内进行完全独立的操作。更多的情况是一些线程进行某些处理操作,而其他的线程必须对其处理结果进行了解。正常情况下对这种处理结果的了解应当在其处理任务完成后进行。 如果不采取适当的措施,其他线程往往会在线程处理任务结束前就去访问处理结果,这就很有可能得到有关处理结果的错误了解。例如,多个线程同时访问同一个全局变量,如果都是读取操作,则不会出现问
2009-09-28 12:01:00
722
转载 临界区
不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。每个进程中访问临界资源的那段代码称为临界区(Critical Section)。 每个进程中访问临界资源的那段程序称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对
2009-09-28 11:49:00
514
转载 事件对象
事件对象(event object ) 事件对象和互斥对象(参见百度百科互斥对象http://baike.baidu.com/view/1769610.htm),一样都属于内核对象,它包含一个使用计数,一个用于标识该事件是一个自动重置还是一个人工重置的布尔值,和另一个用于指定该事件处于已通知状态还是未通知状态的布尔值。 由上面所述,可见事件对象可分为两种,一种是人工重置的,另一种是自动重置
2009-09-28 11:40:00
414
转载 句柄
句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。但由此而产生的句柄概念也大同小异,比如:>(Microsoft Press,by Richard Wilton)一书中句柄的概念是:在Windows环境中,句柄是用来标识项目的,这些项目包括: *.模块(module) *.任务(task) *.实例(instance) *.文件(file)
2009-09-28 11:38:00
255
原创 GlobalFree()
GlobalFree HGLOBAL GlobalFree( HGLOBAL hMem // 指向全局变量的句柄 ); hMem是有 GlobalAlloc 或者 GlobalReAlloc 函数返回的 该函数尝试释放hMem指定的内存块 返回值:如果函数成功返回NULL 如果失败返回hMem 获得错误信息可以调用GetLastError函数。
2009-09-28 11:34:00
981
原创 GlobalAlloc()
GlobalAlloc 该函数从堆中分配一定数目的字节数.Win32内存管理器并不提供相互分开的局部和全局堆.提供这个函数只是为了与16位的Windows相兼容. 函数原型: HGLOBAL GlobalAlloc( UINT uFlags, // 分配属性(方式) DWORD dwBytes // 分配的字节数 ); 参数uFlags: 指定如
2009-09-28 11:26:00
584
转载 accept()
简述: 在一个套接口接受一个连接。 #include SOCKET PASCAL FAR accept( SOCKET s, struct sockaddr FAR* addr, int FAR* addrlen); s:套接口描述字,该套接口在listen()后监听连接。 addr:(可选)指针,指向一缓冲区,其中接收为通讯层所知的连接实体的地址。A
2009-09-28 10:05:00
564
转载 WSAWaitForMultipleEvents()
简述:只要指定事件对象中的一个或全部处于有信号状态,或者超时间隔到,则返回。 #include DWORD WSAAPI WSAWaitForMultipleEvents( DWORD cEvents, const WSAEVENT FAR * lphEvents, BOOL fWaitAll, DWORD dwTimeout, BOOL fAlertab
2009-09-28 09:35:00
3123
转载 基于winsock的阻塞和非阻塞通信模型
基于winsock的阻塞和非阻塞通信模型 摘要:在应用程序开发中,经常涉及各式各样的机器的交互通信问题。在Windows操作系统下,可以使用MFC中的CSocket,也可以使用以Windows Api为基础的Winsock等等。本文主要描述了Winsock的两种实现方式,即阻塞方式和非阻塞方式。并对应这两种方式,描述了Select模式和IOCP模式。 关键字:Winsoc
2009-09-28 09:24:00
1129
转载 select 模型解释
套接字模式:阻塞套接字和非阻塞套接字。或者叫同步套接字和异步套接字。套接字模型:描述如何对套接字的I/O行为进行管理。Winsock提供的I/O模型一共有五种: select,WSAAsyncSelect,WSAEventSelect,Overlapped,Completion。今天先讲解select。 1:select模型择模(选型) 先看一下下面的这句代码
2009-09-28 09:20:00
457
转载 书的下载地址
《VC知识库5周年精华珍藏版》 http://www.ibeifeng.com/read.php?tid=592&u=83 C语言经典算法100例(强烈推荐) http://www.ibeifeng.com/read.php?tid=1334&u=83 《C++程序调试实用手册》(DeBUGGING C++) http://www.ibeifeng.com/read
2009-09-28 09:19:00
541
转载 网络
1、网络协议与TCP/IP2、IP地址和Port(端口号) 1、本地回路的IP地址:127.0.0.1(发往这个地址的数据不经过网卡传递,而是直接被本地计算机中的TCP/IP协议栈中的几个上层协议接收,是用于本地计算机上的 特殊IP地址,通过ping 127.0.0.1可以检查本地计算机上TCP/IP协议是否已正确安装,与网卡并没有绑定,网卡故障不影响它的使用) 2
2009-09-28 09:18:00
274
原创 函数 CloseHandle
CloseHandle函数 BOOL CloseHandle( HANDLE hObject ); 参数 hObject :代表一个已打开对象handle。 返回值 TRUE:执行成功; FALSE:执行失败,可以调用GetLastError()获知失败原因。 函数说明: 关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同
2009-09-28 09:07:00
368
翻译 WSAEventSelect
简述:确定与所提供的FD_XXX网络事件集合相关的一个事件对象。 #include int WSAAPI WSAEventSelect ( SOCKET s, WSAEVENT hEventObject, long lNetworkEvents ); s:一个标识套接口的描述字。 hEventObject:一个句柄,用于标识与所提供的FD_XXX网络事件集合相关
2009-09-28 09:04:00
273
转载 有意思
呵呵,调节气氛。 1.孔子曰:“中午不睡,下午崩溃。”孟子曰:“孔子说的对!” 2.我想起来,我曾立志做一个好玩的人。 3.解释就是掩饰,掩饰就是讲故事~~ 4.不准再问我:最近过的怎么样? 5.将薪比薪的想一下,算了,不想活了。 6.有困难要上,没困难创造困难也要上。 7.夏天就是不好,穷的时候连西北风都没得喝。 8.执子之手,将子拖走。子若不走,拍晕了继续拖走~! 9.你让我滚,我滚了,你让我
2009-09-23 12:54:00
88
转载 套接字
什么是套接字(Socket) 应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口,区分不同应用程序进程间的网络通信和连接。生成套接字,主要有3个参数:通
2009-09-23 10:58:00
368
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人