上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页
摘要: 前言在开发Windows引用程序的时候,在一些需要用户确认,或者提示用户注意的场合,经常使用模态对话框,或者叫模态窗口。在绝大多数情况下,模态窗口给开发人员带来了极大的便利,并且在某些应用上有不可替代的优势。然而凡事有利必有弊,如果不正确地使用模态窗口,却有可能带来某些严重问题,甚至可能引起程序崩溃。要想知道为什么模态窗口可能带来某些严重问题,就必须首先了解模态窗口的实现原理。因此本文将首先介绍模态窗口实现原理,然后分析为什么会带来问题。原理知道了原理,一切就可迎刃而解。了解了原理,就可以知道,模态窗口并不是Windows特有的,而是可以在任何一个GUI系统中实现出来,包括手机上。因为Wind 阅读全文
posted @ 2013-11-12 23:14 归海一刀 阅读(524) 评论(0) 推荐(0) 编辑
摘要: 昨日,编了个DLL和EXE来进行了下测试,exe通过lib静态联编dll,来调用它的导出类,当改变DLL中导出类的结构(eg.成员变量的顺序等),从新发布DLL而不从新联结编译EXE,就会造成错误的执行结果或崩溃!通过观察DLL和EXE生成的汇编代码,才知道生成的机器码中并无类的成员变量,只有类的Size(根据成员变量和有无虚函数)和类函数代码。函数调用是通过名称来调用。(另:内联函数类似于宏,由编译器来处理--把函数体嵌入到调用处)类成员的调用都是通过栈中的指针来调用(如下两种情况)1、分配局部栈变量,根据类Size来调整栈指针ESP,ESP+Size这样来分配空间;2、分配堆指针,把类Si 阅读全文
posted @ 2013-11-09 21:25 归海一刀 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 以下就是SAFEARRAY的Win32定义: typedef struct tagSAFEARRAY { unsigned short cDims; unsigned short fFeatures; unsigned long cbElements; unsigned long cLocks; void * pvData; SAFEARRAYBOUND rgsabound[ 1 ]; } SAFEARRAY; 这个结构的成员(cDims,cLocks等)是通过API函数来设置和管理的。真正的数据存放在pvData成员中,而SAFEARRAYBO... 阅读全文
posted @ 2013-08-15 21:59 归海一刀 阅读(2168) 评论(0) 推荐(0) 编辑
摘要: Beyond Compare 是一套非常实用的文件及文件夹比较软件,不仅可以快速比较出两个文件夹的不同之处,还可以详细的比较文件之间的内容差异。最近改用 TFS 进行版本控管之后,说实在的还是习惯使用Beyond Compare来做差异比较,也因此研究了一下设定的方法,以下是设定的方法笔记。开启 Visual Studio 2010 的 [工具] /[选项] / [源代码管理] /[Visual Studio Team Foundation],并开启「配置用户工具」如下图单击「添加」按钮接着我们要设定两笔数据,一个是设定比较工具,另一个是设定合并工具,我要将这两个使用的时机都改用Beyond 阅读全文
posted @ 2013-08-15 17:02 归海一刀 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 正如我们可以通过计算机历史上的重要人物了解计算机史的发展,C++相关人物的网站也可以使我们得到最有价值的参考与借鉴。 正如我们可以通过计算机历史上的重要人物了解计算机史的发展,C++相关人物的网站也可以使我们得到最有价值的参考与借鉴,下面的人物我们认为没有介绍的必要,只因下面的人物在C++领域的地位众所周知,我们只将相关的资源进行罗列以供读者学习,他们有的工作于贝尔实验室,有的工作于知名编译器厂商,有的在不断推进语言的标准化,有的为读者撰写了多部千古奇作……1、Bjarne Stroustruphttp://www.research.att.com/~bs/2、Stanley B. Lipp. 阅读全文
posted @ 2013-08-01 14:27 归海一刀 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 使用MAP文件快速定位程序崩溃代码行===========================================================作者: lzmfeng(http://lzmfeng.itpub.net)发表于:2006.04.19 17:16分类: 摆脱程序出处:http://lzmfeng.itpub.net/post/15253/70530---------------------------------------------------------------这种方法到现在为止还没有试过呢,要研究研究啊使用MAP文件快速定位程序崩溃代码行 (转载) 作为程序. 阅读全文
posted @ 2013-07-26 14:56 归海一刀 阅读(490) 评论(0) 推荐(0) 编辑
摘要: SetProcessWorkingSetSize函数的骗局本文引用自:http://hi.baidu.com/jenson138/item/e64e7e453c5b28e21381da9c我实在不愿意提起这个话题.后来在网上看到几篇文章,深深感觉到,已经有程序员站出来,揭穿这个忽悠了千百万用户的诡计了...附2篇文章的地址:http://blog.csdn.net/biku/archive/2006/07/06/886038.aspxhttp://blog.csdn.net/zlt982001/archive/2005/08/28/466879.aspx我这篇文章无非是归纳了几篇文章的内容,并 阅读全文
posted @ 2013-05-28 15:55 归海一刀 阅读(667) 评论(0) 推荐(0) 编辑
摘要: 今天在VS2008中写DLL程序时,DLL中的函数出现了问题,想调试一下,以便知道原因,因我从来没有调试过DLL程序,因此从网上找了下调试DLL程序的方法,记录如下:第一步:在VS2008 的“解决方案资源管理器”中右键选择 DLL 项目的属性,截图如下:第二步:打开DLL属性窗口后,修改以下属性值即可://修改 要启动的调试器 的值1. 要启动的调试器:本地Windows 调试器//填写命令的值为rundll32.exe2. 命令:rundll32.exe//填写命令参数3. 命令参数:$(TargetFileName)SetHook //SetHook为我的DLL中的函数的名字, ... 阅读全文
posted @ 2013-05-17 15:52 归海一刀 阅读(249) 评论(0) 推荐(0) 编辑
摘要: Application.ProcessMessages;LockWindowUpdate(Self.Handle);//锁住当前窗口LockWindowUpdate(0)//解除锁定窗口LockWindowUpdate不但闪烁,而且有可能引起桌面闪烁。因为LockWindowUpdate并不忽略消息,只是暂时不响应,所以有可能积聚多个重画消息,并在使用LockWindowUpdate(0)之后依次响应。而使用SendMessage(ClientHandle,WM_SETREDRAW,0,0)之后,控件根本不接收重画消息,除非使用SendMessage(ClientHandle,WM_SETRE 阅读全文
posted @ 2013-05-14 14:46 归海一刀 阅读(339) 评论(0) 推荐(0) 编辑
摘要: PreTranslateMessagePreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当你需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采用SendMessage()或其他类似的方式向窗口直接发送的而不经过消息队列的消息根本不会理睬Pre. 阅读全文
posted @ 2013-05-10 10:28 归海一刀 阅读(160) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 14 下一页