DoubleLi

qq: 517712484 wx: ldbgliet

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

2013年12月17日

摘要: 今天看了点关于Windows多线程的东西,摘抄点关于CloseHandle的内容放于此,以便以后参考。主要是《Windows核心编程》里的两小节:3.1.1 内核对象的使用计数 内核对象由内核所拥有,而不是由进程所拥有。换句话说,如果你的进程调用了一个创建内核对象的函数,然后你的进程终止运行,那么内核对象不一定被撤消。在大多数情况下,对象将被撤消,但是如果另一个进程正在使用你的进程创建的内核对象,那么该内核知道,在另一个进程停止使用该对象前不要撤消该对象,必须记住的是,内核对象的存在时间可以比创建该对象的进程长。 内核知道有多少进程正在使用某个内核对象,因为每个对象包含一个使用计数。使用计数是 阅读全文
posted @ 2013-12-17 20:55 DoubleLi 阅读(1681) 评论(0) 推荐(0)

摘要: Debugging with GDBhttp://www.delorie.com/gnu/docs/gdb/gdb_25.htmlGDB调试多线程程序总结一直对GDB多线程调试接触不多,最近因为工作有了一些接触,简单作点记录吧。 先介绍一下GDB多线程调试的基本命令。info threads显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。thread ID切换当前调试的线程为指定ID的线程。break thread_test.c:123 thread all在所有线程中相应的行上设置断点thread apply I 阅读全文
posted @ 2013-12-17 20:34 DoubleLi 阅读(330) 评论(0) 推荐(0)

摘要: [精彩] 求问delete和delete[] 的区别??http://www.chinaunix.net/jh/23/311058.htmlC++告诉我们在回收用new分配的单个对象的内存空间的时候用delete,回收用new[]分配的一组对象的内存空间的时候用delete[]。楼主的这个问题提得很好。很多人注意到了这个问题,但是却不清楚为什么要这样做,不这样做行不行。关于new[]和delete[],其中又分为两种情况:(1)为基本数据类型分配和回收空间;(2)为自定义类型分配和回收空间。对于(1),上面提供的程序已经证明了delete[]和delete是等同的。但是对于(2),情况就发生了 阅读全文
posted @ 2013-12-17 20:32 DoubleLi 阅读(766) 评论(0) 推荐(0)

摘要: STL即 Standard Template Library (标准模板库) STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。 从根本上说,STL是一些“容器”的集合,这些“容 阅读全文
posted @ 2013-12-17 20:27 DoubleLi 阅读(1189) 评论(0) 推荐(0)

摘要: Makefile学习教程: 跟我一起写 Makefile 0 Makefile概述 0.1 关于程序的编译和链接1 Makefile 介绍 1.1 Makefile的规则1.2 一个示例1.3 make是如何工作的1.4 makefile中使用变量1.5 让make自动推导1.6 另类风格的makefile1.7 清空目标文件的规则2 Makefile 总述 2.1 Makefile里有什么?2.2Makefile的文件名2.3 引用其它的Makefile2.4 环境变量 MAKEFILES2.5 make的工作方式3 Makefile书写规则 3.1 规则举例3.2 规则的语法3.3 在规则 阅读全文
posted @ 2013-12-17 20:22 DoubleLi 阅读(504) 评论(0) 推荐(0)

摘要: WM_PAINT是窗口每次重绘都会产生的一个消息。 OnPaint是对这个消息的反应函数mfc 的 CWnd::OnPaint 没做什么,只是丢给系统处理。一 :先执行OnEraseBkgnd,擦除背景(如果想自绘控件,这个函数直接return TRUE就可以了,这样就不会擦除背景,不会闪)OnEraseBkGnd与OnPaint的区别与联系在OnEraseBkGnd中,如果你不调用原来缺省的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面,由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd 函数,这时就和窗口缺省的背景刷相关了.缺省的 阅读全文
posted @ 2013-12-17 19:43 DoubleLi 阅读(2543) 评论(0) 推荐(0)

摘要: C++程序员打交道最多的就是MFC了,这个我不想多说,说来都是泪(C#年年更新,C++十年才出了一个featurePack还不是很好用)现在另外两支队伍越来越庞大(所谓穷则思变,呵呵),一是WTL,关于它的种种传说可以参考WTL中文教程,里面讲的很详细,这里我想说的是为什么使用WTL:传说WTL是微软内部所使用的界面框架程序,原因是高效,简洁,实际也是如此,WTL的程序内的内存占用比MFC小的多,而且WTL内建了对于可缩放对话框的支持(支持控件停靠哦),对于多文档以及视类的支持更是MFC望尘莫及的,但是WTL也有其自身的缺点,比如开发文档少,尤其是中文的,向导不够聪明(谁用谁知道,呵呵),换句 阅读全文
posted @ 2013-12-17 17:54 DoubleLi 阅读(1054) 评论(0) 推荐(0)

摘要: C++在“商业应用”方面,曾经是天下第一的开发语言,但这一桂冠已经被java抢走多年。因为当今商业应用程序类型,已经从桌面应用迅速转移成Web应用。当Java横行天下之后,MS又突然发力,搞出C#语言,有大片的曾经的C++程序员,以为C++要就此沉沦,未料,这三年来,C++的生命力突然被严重地增强了。主力原因就是开源的软件、基础软件(比如并发原生支持,比如Android必定要推出原生的SDK)、各种跨平台应用的出现。开源C++库必须具有以下特点:必须是成熟的产品、跨平台的产品、相对通用的库。一、通用标准类STL:C++标准模板库,呵呵,它也是开源的嘛。boost:C++准标准库,它是强大地,江 阅读全文
posted @ 2013-12-17 17:31 DoubleLi 阅读(948) 评论(0) 推荐(0)

摘要: 使用分层界面来实现界面皮肤的好处是:可以保证图片边缘处理不失真,且能用于异形窗口上,如一些不规则的窗口,你很难用SetWindowRgn来达到理想效果。在很多情况下,界面的漂亮与否,取决于PS的制作及创意,而界面编程所需要做的就是将图片完整无缺的展示给用户。分层窗口的好处就是:用一层窗口来描绘窗口背景,以确保背景图片不会失真,而另一层窗口用来放置控件,除控件之外的区域全是透明的。为什么要这么麻烦呢?因为我们将要用到UpdateLayeredWindow来实现窗口背景描绘,一旦执行这个函数后,窗口的控件将会被覆盖,不会再显示。所以我们要再加一层透明窗口,来放置控件,以确保控件不会受到Update 阅读全文
posted @ 2013-12-17 16:24 DoubleLi 阅读(2989) 评论(0) 推荐(1)

2013年12月11日

摘要: WM_PAINT是Windows窗口系统中一条重要的消息,应用程序通过处理该消息实现在窗口上的绘制工作。1.系统何时发送WM_PAINT消息?系统会在多个不同的时机发送WM_PAINT消息:当第一次创建一个窗口时,当改变窗口的大小时,当把窗口从另一个窗口背后移出时,当最大化或最小化窗口时,等等,这些动作都是由 系统管理的,应用只是被动地接收该消息,在消息处理函数中进行绘制操作;大多数的时候应用也需要能够主动引发窗口中的绘制操作,比如当窗口显示的数据改变的时候,这一般是通过InvalidateRect和 InvalidateRgn函数来完成的。InvalidateRect和InvalidateR 阅读全文
posted @ 2013-12-11 21:00 DoubleLi 阅读(400) 评论(0) 推荐(0)

上一页 1 ··· 378 379 380 381 382 383 384 385 386 ··· 474 下一页