摘要: 上几天在V站逛的时候看到某作者出了个截图工具(snipaste)很是强大. 可下载后就是打不开, 工具是Qt5写的, 提示我无法加载qwindows.dll, 这个dll明确在platforms目录里放着的. 谷歌一通后发现Qt的社区有个帖子也是这样, 那人用Dependency Walker列出了 阅读全文
posted @ 2016-08-19 02:34 Athrob 阅读(3902) 评论(0) 推荐(1) 编辑
摘要: Thread.Join会导致调用线程挂起, 等待Thread结束后继续执行.此时若调用线程为主线程(UI线程)同时Thread里面调用了控件的Invoke方法, 则有可能会导致死锁代码如下: 1 public delegate void InvokeHandler(); 2 stat... 阅读全文
posted @ 2014-12-02 15:47 Athrob 阅读(1144) 评论(1) 推荐(0) 编辑
摘要: 转自:http://cpluser.bokee.com/4105719.html1.vector(动态数组)vector支持随机存取。vector在末端增加或删除元素时性能相当好,在前端或中部做以上操作则效率比较低,因为操作点以后的所有元素都需要移动到另外一个位置。因此,当要插入多个元素时,调用一次比调用多次效率快。vector高效的原因在于配置了比其所容纳的元素更多的内存。内存重新配置会花很多时间。请关注capacity()成员函数。2.deque(动态数组)deque支持随机存取。在deque的首端和末端插入和删除元素比较快,在中部插入和删除则比较慢。deque的内存重分配性能比vecto 阅读全文
posted @ 2013-01-02 14:02 Athrob 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 英文版地址:http://download.microsoft.com/download/1/9/f/19fe4660-5792-4683-99e0-8d48c22eed74/Vs6sp6.exe简体中文版地址: http://download.microsoft.com/download/e/c/... 阅读全文
posted @ 2013-01-01 21:38 Athrob 阅读(283) 评论(0) 推荐(0) 编辑
摘要: iocp模型的tcp服务端若采用AcceptEx接受连接,在有客户端连接后要获取客户端的ip和端口信息流程:AcceptEx在工作线程收到客户端连接时复制listensocket的信息到新客户端的socketsetsockopt( pOverlapped->hSocket, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT, (char *)&m_hSocket, sizeof(m_hSocket) );然后就可以用getpeername获取远程ip和端口了. 阅读全文
posted @ 2012-12-25 17:32 Athrob 阅读(469) 评论(0) 推荐(0) 编辑
摘要: 原文:It is normal that a programmer feel lost when deciding which macros he/she should use. Here we try to clarify that decision for you.· VM macros and CodeReplace macros are the strongest ones in security· Encode macros are not so strong but they have good performance when you have a loop 阅读全文
posted @ 2012-08-10 16:10 Athrob 阅读(1032) 评论(0) 推荐(0) 编辑
摘要: 转载自:http://hi.baidu.com/anheizzq/item/1c0899622926c81e7ddecca3发现文字描述还是太没有快感。上几幅图,来说明这个调试过程更好。此文对于深刻理解ebp,esp是具有长远意义的 可以看到,初始情况下,ebp此时值为0012FEDC,也就是栈帧的地址,而栈顶地址esp值为0012FDFC。可以看到两个值有一定的关系。而帧指针的地址较高。 然后我们让它执行前两句,push ebp,mov ebp,esp 可以看到前两句已经执行了,那么ebp跟esp的值也发生了变化。esp=0012FDF8,ebp=0012FDF8。为神马?一句句解读,pus 阅读全文
posted @ 2012-07-18 17:44 Athrob 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 分析arm的一个程序,不懂PC寄存器,网上答案PC是控制器中的程序计数器,16位寄存器,属于计数寄存器。要单片机执行一个程序,就必须把该程序按顺序预先装入存储器ROM的某个区域。单片机动作时应按顺序一条条取出指令来加以执行。因此,必须有一个电路能找出指令所在的单元地址,该电路就是程序计数器PC。当单片机开始执行程序时,给PC装入第一条指令所在地址,它每取出一条指令(如为多字节指令,则每取出一个指令字节),PC的内容就自动加1,以指向下一条指令的地址,使指令能顺序执行。只有当程序遇到转移指令、子程序调用指令,或遇到中断时(后面将介绍),PC才转到所需要的地方去。看完后大彻大悟了一下... 阅读全文
posted @ 2012-07-16 05:21 Athrob 阅读(1947) 评论(0) 推荐(0) 编辑
摘要: 一个Qt写的包含HTTP下载文件功能的小项目,由于对QNetworkReply的机制不太了解于是将原来自己定义的类QDownload丢弃重新用wininet的api实现了一个QHttpDownload类,继承自QThread这样每个QHttpDownload实例对应一个下载任务,在线程内进行不会导致主界面卡死.因为要不断的编译调试.突然发现即使没有任何代码的改动,直接启动调试时候也会提示项目已过期.Vc的编译默认都是增量编译的,也就是只编译上次成功编译以来修改过的文件.很明显这里出现了差错,导致提示项目过期.网上搜来的是说项目里包含了不存在的头文件导致的.这个包含不是用#include包含进来 阅读全文
posted @ 2012-06-13 18:22 Athrob 阅读(2389) 评论(0) 推荐(0) 编辑
摘要: 本文内容中的部分资料和知识来源于网络,具体引用出处不明. VS的IDE从VC6到VS2010的变化可谓是天翻地覆,最新的VS2010有一个特性就是支持多显示器开发,这无疑为我们的开发带来很大的便利. VC的各种版本也都有它自己的特点,像VC6就以速度快著称. 随着操作系统的不断进化,即使是开发人员对 阅读全文
posted @ 2012-06-06 19:59 Athrob 阅读(8553) 评论(11) 推荐(1) 编辑