摘要:使用BoundsChecker检测内存泄漏: BoundsChecker采用一种被称为Code Injection的技术,来截获对分配内存和释放内存的函数的调用。简单地说,当你的程序开始运行时,BoundsChecker的DLL被自动载入进程的地址空间(这可以通过system-level的Hook实现),然后它会修改进程中对内存分配和释放的函数调用,让这些调用首先转入它的代码,然后再执行原来的代码...
        
阅读全文
 
    
        
        
摘要:检测内存泄漏: 检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve M...
        
阅读全文
 
    
        
        
摘要:对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较成熟...
        
阅读全文
 
    
        
        
摘要:Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标的输入,...
        
阅读全文
 
    
        
        
摘要:在程序中我们经常要使用定时刷新的功能,典型的应用是在信息管理系统中表单要跟着数据库中的数据变动。MFC提供了定时器来完成这个功能。 在MFC中和定时器相关的有三个函数:UINT SetTimer( UINT nIDEvent, UINT nElapse, void (CALLBACK EXPORT* lpfnTimer)( HWND, UINT, UINT, DWORD) );afx_msg vo...
        
阅读全文
 
    
        
        
摘要:附: 原文地址 编译时控制分页能力 有时,驱动程序的某些部分必须驻留内存而另一些可以被分页,这就需要一种能控制代码和数据是否分页的方法。通过指导编译器的段分配可以实现这个目的。在运行时,装入器通过检查驱动程序中的段名把段放到你指定的内存池中。此外在运行时调用内存管理器的例程也能实现这个目的。 注意 --------------------------------------------------...
        
阅读全文
 
    
        
        
摘要:CFile操作详解    各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。   1.文件的查找    当对一个文件操作时,如果不知道该文件是否存在,就要首...
        
阅读全文
 
    
        
        
摘要:如果是在对话框中直接使用 RichEdit,需要手动调用 AfxInitRichEdit 或者 AfxInitRichEdit2 函数,这两个函数可以确保 MFC 正确初始化了 Rich Edit Control Runtime;但是如果你通过 CRichEditCtrl,CRichEditView 或者 CRichEditDoc 这三个类之一来使用 RichEdit 控件的话,那么你不必调用那两...
        
阅读全文
 
    
        
        
摘要:astyle是一个我自己常用的开放源码工具。它可以方便的将程序代码格式化成自己想要的样式而不必人工修改。本来嘛,作为高等生物应该优先去做一些智慧的事情,而不是把时间消耗在机器可以完美完成的事情上。 想要立刻开始?请先去主页http://sourceforge.net/projects/astyle下载最新版本。可以选择二进制版本,也可以下载源码自行编译。总之得到可执行文件后请将astyle放在Pa...
        
阅读全文
 
    
        
        
摘要:添加如下消息处理:BOOL CCDialog::PreTranslateMessage(MSG* pMsg){  // TODO: 在此添加专用代码和/或调用基类  if (pMsg->message==WM_KEYDOWN)    switch (pMsg->wParam)    {       case VK_RETURN:        return TRUE;      cas...
        
阅读全文
 
    
        
        
摘要:原文出自MSDN,连接如下: http://msdn.microsoft.com/en-us/library/dd163215.aspx 本人才疏学浅,翻译中难免出现纰漏,恳请大家指正.希望本文对mirror driver初学者有一定帮助. 翻译中有一些拿捏不准的地方给出了英文原文以供参考.谢谢~! 翻译: sunwayking 镜像驱动(Mirror driver) 描述 本镜像驱动实例演示的是...
        
阅读全文
 
    
        
        
摘要:随便练手写了个拼图游戏,大概贴一下,由于本人水平有限,代码风格难免有问题,还请各位高手海涵. 游戏的组框架已经完成,但是还有很多功能没有添加,以后慢慢来完善,窗口大部分按钮没有添加响应函数. 每一次打开游戏都会重新开始一轮挑战(挑战是随机生成的). 头文件预览: 1: #pragma once 2: 3: class CJigsaw; 4: class CJigsawBlock...
        
阅读全文
 
    
        
        
摘要:直接上代码,注释比较详尽. 虽然代码很简单,但是转载请注明作者及出处!谢谢! DTXWindow.hCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/*** 程序名: DirectX9 空白实例* 版本: 1.0* 作者: Suwnayking* ...
        
阅读全文