典雅果汁

文章
4
资源
0
加入时间
2年10月21天

vb sendmessage 详解2

首先我们了解一下Windows的消息机制。Windows是一个消息驱动式系统,Windows消息提供应用程序与应用程序之间,应用程序与Windows系统之间进行通信的手段。举个例子,打开记事本程序,该程序有一个 “文件“菜单。那么,在运行该程序的时候,如果用户单击“文件菜单“里的“新建“命令,这个动作将被Windows所捕捉,Windows经过分析得知这个动作应该由我们打开的记事本程序所...

c++ map find方法源码解析1.背景2.map源码3.结论

1.背景最近,发生了一次奇怪的问题:用const char*作为map的key,定制比较器(采用strcmp实现),同时用了多线程的技术,在map.find()时候有几率发生死循环,通过windbg调试定位问题,发现是在map.find()时候发生了死循环,进而导致执行该过程的线程拿到锁了,但无法释放,后续其他线程一直等待该锁,从而发生假的“死锁”(实际为死循环)。结合map的源码、对应DMP文件的堆栈和相关变量额值(主要为发生死循环的map)以及map的数据结构来分析死循环的原因。2.