- 博客(18)
- 资源 (64)
- 收藏
- 关注
转载 jmp指令对应的机器码
od随便打开一个记事本,汇编几条jmp指令,可以看到如下地址 HEX 反汇编010073B4 - E9 7B9E8787 JMP 88881234010073B9 - E9 769E8787 JMP 88881234010073BE - E9 719E8787 JMP 8888123
2015-07-31 16:31:04 8057
转载 vector的初始化和遍历
这里只说明常用的vector初始化的方式。一般vector的初始化我还是比较习惯于像数组一样的初始化方式。一个一个赋值,或者用花括号的初始化。下面用一个程序来说明:[cpp] view plaincopy#include "stdafx.h" #include #include using namespace std;
2015-07-28 18:18:25 627
转载 用 Windows API “GetAdaptersInfo” 获取 MAC 时遇到的问题
前段时间有个项目需要获取客户端的 MAC 地址,用作统计去重的参考数据。从网上查到的获取 MAC 地址的代码,大多是用同一段代码修改的。于是我也用了那段代码。代码如下:[cpp] view plaincopyvoid GetMAC(BYTE mac[BUF_SIZE]) { ULONG size_pointer;
2015-07-28 10:26:01 1761
转载 把C++类成员方法直接作为线程回调函数
我以前写线程时要么老老实实照着声明写,要么使用C++类的静态成员函数来作为回调函数,经常会因为线程代码而破坏封装.之前虽然知道类成员函数的展开形式,但从没想过利用过它,昨天看深入ATL时无意中学会了这一招:) 类成员方法是一个比较特殊的函数,它在编译时会被转化成普通函数,比如有TMyClass类:class TMyClass{ void Func();};这个TM
2015-07-24 15:20:28 3602 1
转载 C++ STL,ATL,WTL之间的联系和区别
STL即 Standard Template Library (标准模板库)STL是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、co
2015-07-24 14:09:22 505
转载 关于STL中的map和hash_map
在网上看到有关STL中hash_map的文章,以及一些其他关于STL map和hash_map的资料,总结笔记如下: 1、STL的map底层是用红黑树实现的,查找时间复杂度是log(n); 2、STL的hash_map底层是用hash表存储的,查询时间复杂度是O(1); 3、什么时候用map,什么时候用hash_map? 这个药看具体的应用,不一定常数级
2015-07-22 15:52:32 554
转载 STL容器效率比较
1、vector变长一维数组,连续存放的内存块,有保留内存,堆中分配内存;支持[]操作,高效率的随机访问;在最后增加元素时,一般不需要分配内存空间,速度快;在中间或开始操作元素时要进行内存拷贝效率低;vector高效的原因在于配置了比其所容纳的元素更多的内存,内存重新配置会花很多时间;注:需要高效的随即存取,而不在乎插入和删除使用vector。 2、list双向
2015-07-21 22:16:04 647
转载 调试异常 Free Heap block xxxxxxxx modified at xxxxxxxx after it was freed
Free Heap block XXXXXX modified at XXXXXX after it was freed相信不少朋友碰到过以上问题,而往往苦于无法定位到错误的代码位置,其实出现该问题一般就是使用了野指针导致的.那么何为野指针呢?野指针与NULL指针不同.所谓野指针是指指针所指的内存已经回收,而继续使用该指针,导致未定义行为.例如:[c
2015-07-17 17:48:53 3373
转载 EnterCriticalSection 和 TryEnterCriticalSection
如果EnterCriticalSection将一个线程置于等待状态,那么该线程在很长时间内就不能再次被调度。实际上,在编写得不好的应用程序中,该线程永远不会再次被赋予CPU时间。TryEnterCriticalSection函数决不允许调用线程进入等待状态。它的返回值能够指明调用线程是否能够获得对资源的访问权。TryEnterCriticalSection发现该资源已经被另一个线程访问,它就返回F
2015-07-17 16:45:36 4171 1
转载 得到当前函数堆栈调用
步骤:1. 调用RtlCaptureContext函数(MSDN)获取上下文(context)。2. 把寄存器地址填充到STACKFRAME结构中。3. 循环调用StackWalk64函数(MSDN)回溯调用栈(call stack)。4. 调用SymFromAddr函数(MSDN)获得符号(symbol),再调用SymGetLineFromAddr64函数(MSD
2015-07-17 14:36:18 4424
转载 显示函数调用栈
本文讲解如何在调试器中显示函数调用栈,如下图所示: 原理首先我们来看一下显示调用栈所依据的原理。每个线程都有一个栈结构,用来记录函数的调用过程,这个栈是由高地址向低地址增长的,即栈底的地址比栈顶的地址大。ESP寄存器的值是栈顶的地址,通过增加或减小ESP的值可以缩减或扩大栈的大小。上一篇文章已经简略地介绍过在调用函数时线程栈上会发生什么事情,现在我们再来详细地看看这个过程:
2015-07-17 10:52:20 3078
转载 通过GeoIP2分析访问者IP获取地理位置信息
MaxMind GeoIP2 服务能识别互联网用户的地点位置与其他特征,应用广泛,包括个性化定制内容、诈欺检测、广告定向、网站流量分析、执行规定、地理目标定位、地理围栏定位 (geo-fencing)以及数字版权管理。目前使用 GeoIP 更多是配合Nginx或Apache服务器进行日志分析获取网站访问量地域分布状况。GeoIP 分为商业版和免费版,免费版比商业版精度差了许多,经测试对于城
2015-07-16 14:32:04 2056
转载 查看临界区等待线程数量
某日,在浙大国家实验室,与老方和小崔调试监控死锁问题。机柜里一溜架装服务器上出现死锁问题。用WinDbg看,发现其中导致死锁的临界区LockCount值是小于-1的数!! 多次重现该问题,发现LockCount经常是负的两三百。我等本着不十分科学严谨,但又有一点科学严谨的态度,装模作样查了下资料,显示如下: LockCount代表什么含义 ms-help://MS.MS
2015-07-15 17:44:03 1519
转载 duilib进阶教程 -- 实现List排序
需求: 点击List的某个ListHeaderItem,List按照此列排序。实现思路:在C#中好多控件都支持排序,如gridview,只要配置相应属性并实现一些方法就可以了,但duilib就不行了,一切都得自己来。1 找到事件触发位置,在Notify方法中捕获DUI_MSGTYPE_HEADERCLICK这个消息,在比对控件名即可2 排序处理 1)获取每一个ListIt
2015-07-13 16:30:18 715
转载 从缓冲上看阻塞与非阻塞socket在发送接收上的区别
最近在网络上看到一些帖子以及回复,同时又搜索了一些网络上关于阻塞非阻塞区别的描述,发现很多人在描述两者的发送接收时操作返回以及缓冲区处理的区别时有不同程度的误解。所以我想写一篇文章来纠正错误,并作为记录方便查阅,如有转载,注明作者(jwybobo2007)以及出处即可。 首先socket在默认情况下是阻塞状态的(未指异步操作以及其它一些特殊用途下,直接默认为非阻塞),这就使得发送以及接收
2015-07-08 13:29:35 1506
转载 WSAGetLastError:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断 的解决
今天在进行网络通信调试的时候遇到一个错误:10004 一个封锁操作被对 WSACancelBlockingCall的调用中断。错误的发生情况如下:Server:1. 一个线程启动一个socket1 在监听,接收到到来的client连接.2. 同时,启动一个socket2作为client,连接到另外一个MessageServer上,今天因为MessageServer没
2015-07-03 15:32:16 8087
转载 socket的半包,粘包与分包的问题
首先看两个概念: 短连接: 连接->传输数据->关闭连接 HTTP是无状态的,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 也可以这样说:短连接是指SOCKET连接后发送后接收完数据后马上断开连接。 长连接: 连接->传输数据->保持连接 -> 传输数据-> 。。。 ->关闭连接。 长连接指建立SOCKET连接后不管是否使
2015-07-01 17:20:54 772
转载 国际化困境(第二篇)
难得我写系列文章,我的作风更偏向于一鼓作气。(那接下去怎么说?再而衰,三而竭……希望不是这样,呵呵……)七、OEM与ANSI的转换好,接上次,上次讲到OEM和ANSI,在文章后面我还给出一张所谓“全图”,当然,只针对两个code page的0x80到0xFF的字符,一个是437,可以认为是英文版的OEM code page,一个是1252,可认为是英文版的ANSI code page,我还
2015-07-01 10:13:00 886
字体wps.zip 用于linux wps 使用
2020-03-16
Nat_Type_Tester_.rar
2019-12-26
msfupdate.erb
2019-11-04
fuzz工具 teenage mutant ninja turtles
2019-01-14
Sybase ASE 12.5.4 PC 客户端
2018-12-12
Win32 OpenSSL
2015-04-18
ActivePerl
2015-04-18
编写 Debugging Tools for Windows 扩展 实例
2014-04-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人