代码改变世界

随笔分类 -  windows

为什么没有SendThreadMessage呢?

2011-03-31 22:00 by curer, 4143 阅读, 收藏, 编辑
摘要: 最近忙公司的项目(或是毕设吧),发现很长时间没有总结了。是该换换脑子了。“为什么没有SendThreadMessage呢?”这个问题,就来自自己平时实现的一些程序逻辑中。在一些具体的场景中,对像我这样的初学者来说,往往喜欢通过windwos的消息机制来完成UI线程和worker线程之间的同步,而不是去通过信号量或其他的去做。所以,这个问题一直困惑了自己很久。而现在,就来搞明白这个、google一下,这个问题,在一个大牛(Raymond Chen)http://blogs.msdn.com/b/oldnewthing/archive/2008/12/23/9248851.aspx)的博客中提到了 阅读全文

胡言乱语计算机二

2011-02-27 19:36 by curer, 14045 阅读, 收藏, 编辑
摘要: 中断和异常处理是OS中非常重要的组成部分,当然windows也不例外,他们是我们理解OS一些概念、机制的基础。中断和异常简单的来说,就是在程序正常执行流程中,突发一个事件,导致程序的执行流程转向另外的执行流程中。而我们绝大多数编写的程序都是顺序执行的,我们的确体会不到这样的机制能够给我们带来多少好处。但是这个在OS的设计中,确实深入到各个方面,以至于没有中断异常处理,现代OS根本无法构建。为了简单理解,我们可以看看这个例子。比如我们准备带我们的宠物狗狗出去散步,但是由于狗狗非常淘气,经常单独行动(这里,我们是无法预知狗狗会在什么时候跑掉的),在没有任何其他道具的帮助下,我们只能每隔一段时间去看 阅读全文

胡言乱语计算机一

2011-01-22 22:26 by curer, 6206 阅读, 收藏, 编辑
摘要: 操作系统是连接硬件和应用软件之间的纽带。至少目前是这样的。而操作系统这门课也是计算机专业的必修课之一。无奈当时混沌。并没有真正的上好这一门课,之所以叫胡言乱语。是因为这里面的水对我来说实在是太深了。任何一个小的问题背后都是一个深渊。所以第一篇,从最初的(大学课程最初)开始讲起。8086,应该是学计算机最开始的地方。可以说是我们现在x86系列的最简单,最基础的实现。里面的设计都或多或少的影响到了后面系列的实现。所以,学校从这里开始,的确是非常明智的,虽然当时我不这么认为。但是想要了解或是明白8086的设计,那么也就要带出另外的那些更为底层的,计算机指令集,机器语言,引脚,门,电压等等。当然我不是 阅读全文

SEH 学习笔记二

2010-12-21 17:38 by curer, 2594 阅读, 收藏, 编辑
摘要: 上一篇总结了SEH的基础知识,这一篇我们稍微深入一点。之前我们知道了异常是什么样的,以及我们写好了出现异常时执行的代码。那么windows是如何调用我们的代码呢?在了解这个之后,global unwind,异常嵌套也就容易了解了。不得不说,如果之前没有了解SEH,这的确是一件非常有挑战的事情。当然,如果从根上,也就是从硬件到os kernel再到user mode这个就不是挑战,而是不可能一下子完成的任务了。我们还是一步步来,从异常跑到user mode开始。准备好了么?  首先想一个问题,上一篇我们的第一个例子,我们保护了一段代码,但是同时,为了修正这段代码,我们又引入了一段代码。事实上,我 阅读全文

SEH学习笔记一

2010-12-15 20:19 by curer, 3692 阅读, 收藏, 编辑
摘要: SEH(structured exception handling),结构化异常处理。在windows本身开发中运用的非常广泛,而且MS并没有独享,并且通过vs为开发者提供了方便几个关键字来支持。__try, __exception,__finally。但是讲解的却非常少。本文希望能够给大家抛砖引玉一下。http://www.microsoft.com/msj/0197/exception/exception.aspx,这篇是理解SEH必须的文章,虽然他的时间悠久,但是却真正的解释了SEH的编译器级实现,下面的一些示例代码也来自这里。相关的不错的SEH文章,http://www.woodman 阅读全文

PE文件初探二

2010-10-06 22:21 by curer, 3534 阅读, 收藏, 编辑
摘要: 上一篇主要是很初略的总结了是什么,这篇要总结下为什么。以下部分参照了http://msdn.microsoft.com/en-us/magazine/cc301727.aspx和http://blog.donews.com/zwell/archive/2005/10/21/596302.aspx两位大牛的文章。和上述不同的是本文主要的涉及内容来自win7。当然我这里并没有真正的涉及win7,以及Vista所加入的新内容,(因为那些对现在的我来说实在是太复杂了)。win7 只是一个壳子,我描述的核心是在win2K,甚至是在windows3.1这些版本中就已经有的。当然为了能够更详细的理解整个过程 阅读全文

PE文件初探一

2010-10-06 22:09 by curer, 3431 阅读, 收藏, 编辑
摘要: 最近一直在学习PE文件的相关知识。随着了解的增多,我不得不改变之前的学习方式。以前总是再理解更进一步后, 才总结上一层的知识。而且理解知识的时候总是喜欢从难到易得方式去理解知识。因为如果漫无目的的去学习,实在是 一个体力活。如果把一系列相关的知识比作一颗倒置的二叉树的话,我总是喜欢从根节点开始,然后再去遍历每个叶子 节点。只可惜我并没有掌握非递归算法。好吧,再没有处理尾递归的情况下,随着二叉树深度... 阅读全文
点击右上角即可分享
微信分享提示