![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
vc/c++
文章平均质量分 81
zcjrun
这个作者很懒,什么都没留下…
展开
-
稳健内存管理
<br /><br />/////////////////////////////////////////////////////////////////<br />// 自定义内存管理器<br />//<br />// [总空闲数(4 byte)]<br />// [数据块(ItemSize byte)][是否占用(1 byte)][当前块索引(4 byte)][下块索引(4 byte)]<br />// [数据块(ItemSize byte)][是否占用(1 byte)][当前块索引(4 byt转载 2011-03-24 19:11:00 · 287 阅读 · 0 评论 -
一个高效率的线程池类
<br /><br />MMORPG游戏服务端线程池类<br />线程池: <br />线程是一种比较昂贵的资源.有些系统为了重用线程.引入了线程池的机制. <br />线程池的工作原理如下: <br />首先.系统会启动一定数量的线程.这些线程就构成了一个线程池.当有任务要做的时候.系统就从线程池里面选一个空闲的线程.然后把这个线程标记为“正在运行”.然后把任务传给这个线程执行.线程执行任务完成之后.就把自己标记为"空闲".这个过程并不难以理解.难以理解的是.一般来说.线程执行完成之后.运行栈等系统资源就转载 2011-04-26 11:21:00 · 2338 阅读 · 0 评论 -
一个内存池C++类的实现
<br /><br />一个内存池C++类的实现<br />在程序设计领域,程序员经常需要及时动态地产生出一些小型对象,例如读取解析文件时临时需要的缓冲区,动态创建视图时需要的视图对象,游戏程序中怪物,特效,场景物乃至于低级的链表节点等等。如果程序员只是天真地使用new和delete,在经过程序执行中不断反复的分配释放内存后,很快就会使原本完整连续的可用内存块变得支离破碎,这就是内存碎片即Memory Fragmentation问题。更糟的是内存碎片问题往往很难检测出来。<br />为了尽可能降低内存碎片的转载 2011-04-26 11:17:00 · 1952 阅读 · 0 评论 -
最快速度找到内存泄漏
<br />内存管理是C++程序员的痛。我的《内存管理变革》系列就是试图讨论更为有效的内存管理方式,以杜绝(或减少)内存泄漏,减轻C++程序员的负担。由于工作忙的缘故,这个系列目前未完,暂停。这篇短文我想换个方式,讨论一下如何以最快的速度找到内存泄漏。确认是否存在内存泄漏我们知道,MFC程序如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如:view plaincopy to clipboardprint?class CMyApp : public CWinApp转载 2011-03-24 19:29:00 · 377 阅读 · 0 评论 -
ADO数据库访问技术概述
<br />前面已经了解了在Visual C++下进行数据库编程,可供选择的访问技术有许多,我们需要根据情况选择适当的技术。在此我们就来具体了解这些技术的概貌。<br /> <br /> <br />ADO对象模型组成<br />ADO是一组由微软提供的COM组件,基于面向对象思想的编程接口。它建立在COM体系结构之上,它的所有接口都是自动化接口,因此在C++、VisualBasic、Delphi等支持COM的开发语言中通过接口都可以访问到ADO。ADO对象模型非常精炼,由三个主要对象Connection、转载 2011-03-24 13:48:00 · 2615 阅读 · 0 评论 -
vc中,unicode项目向多字节字符集项目移植
1: 首先更改项目属性为多字节字符集.2: 对于所有 L"字符串", 去掉L, 或改为=> _T("字符串") ps1: _T是个自动替换的宏, 可以根据编译条件的不同, 替换成不同的东西. ps2:若想使用_T,要先包含文件3: 替换所有的 WCHAR 为 TCHAR4: 替换所有的Unicode函数为非Unicode函数 eg _wsplitpath_s => _splitpath_s ps1: 最好使用那些能够根据编译条件自动替换的函数. 想所有的win转载 2011-03-24 13:28:00 · 509 阅读 · 0 评论 -
Windows内存管理
<br /> <br /> 内存管理对于编写出高效率的Windows程序是非常重要的,这是因为Windows是多任务系统,它的内存管理和单任务的DOS相比有很大的差异。DOS是单任务操作系统,应用程序分配到内存后,如果它不主动释放,系统是不会对它作任何改变的;但Windows却不然,它在同一时刻可能有多个应用程序共享内存,有时为了使某个任务更好地执行,Windows系统可能会对其它任务分配的内存进行移动,甚至删除。因此,我们在Windows应用程序中使用内存时,要遵循Windows内存管理的一些转载 2011-03-24 19:43:00 · 478 阅读 · 0 评论 -
C++中重载+操作符的正确方法
<br /><br />用户定义的类型,如:字符串,日期,复数,联合体以及文件常常重载二元 + 操作符以实现对象的连接,附加或合并机制。但是要正确实现 + 操作符会给设计,实现和性能带来一定的挑战。本文将概要性地介绍如何选择正确的策略来为用户定义类型重载这个操作符。<br />考虑如下的表达式: int x=4+2;<br />内建的 + 操作符有两个类型相同的操作数,相加并返回右值 6,然后被赋值给 x。我们可以断定内建的 + 是一个二元的,对称的,可交换的操作符。它产生的结果的类型与其操作数类型相同。按转载 2011-03-24 19:05:00 · 356 阅读 · 0 评论 -
VC++实现的类似Delphi的TStringList对象列表类
<br /><br />// 头文件:MyStringList.h<br />//////////////////////////////////////////////////////////////<br />//1、简 介:对象列表类 - 索引串+对象指针<br />//2、主要功能:<br />// <br />// 可以根据索引串活对象指针值获取索引<br />// 灵活添加删除<br />// <br />//转载 2011-03-25 10:12:00 · 2128 阅读 · 0 评论 -
MFC的CString的内部实现分析
<br /><br />MFC的CString是字符串管理类,其为了实现高效率的缓冲管理,使用了引用记数及CopyBeforeWrite技术。这在一定程度上加大了其神秘感和理解难度。好在他的代码是公开的,所以可以给我们研究它的内部实现提供条件。下面就来看看到底是如何实现的。由于不同版本的MSVC其CString实现有些许差别,下面是针对VS2003来说明的。<br />由于它的基础类使用了模板技术,可以实现内存管理的定制,我们只研究MFC的默认内存管理方式。即CAfxStringMgr类提供的方式。MFC在转载 2011-03-24 19:14:00 · 1246 阅读 · 0 评论 -
编写易于调试的VC代码
<br /><br />一 程序的设计 <br /><br /> 要避免错误,首先要从好的设计开始。对于程序的设计,需考虑到程序的两个特性: <br /><br /> 1简单性 <br /><br /> 大多数常见的错误来源于程序设计中不必要的复杂成分。一个好的设计应该反映问题本身的要求,而不必为了刻意追求“满足将来的需要”而添加不必要的特性。实际上,简单优雅的设计比那些复杂的设计更能迎合未来的需求。 <br /><br /> 2 耦合性 <br /><br /> 耦合(decoupling)性用转载 2011-03-24 13:56:00 · 558 阅读 · 0 评论 -
VC多线程编程_综述
<br /><br />VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.<br />一、问题的提出<br />编写一个耗时的单线程程序:<br /> 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:<br />void CSingleThreadDlg::OnSleepSixSecond()<br />{<br />转载 2011-03-25 10:10:00 · 1640 阅读 · 0 评论 -
线程池类(使用C++,pure API,Mutex,Event)
<br />线程池,用的是C++STL和纯API。而且,为了保证这个线程类本身是线程安全的,我还使用了WinApi中的互斥量。同时仿照C#的类库,在线程类中加入了Join方法。调用线程对象Join方法的线程将等待线程对象直到执行完毕。以下是源代码。<br />/////////////////////////////////MyThread.h//////////////////////////////////////<br />#ifndef _MYTHREAD_H_<br />#define _MY转载 2011-04-26 11:23:00 · 2633 阅读 · 0 评论