自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 pragma warning

1  常用去警告:          #pragma warning(disable:4035) //no return value         #pragma warning(disable:4068) // unknown pragma         #pragma warning(disable:4201) //nonstandard extension used :

2012-10-11 14:40:51 20990

转载 windows的用户栈和内核栈

windows的用户栈和内核栈1、简介         普通的Win32线程有两个栈:一个是用户栈,另一个是内核栈;而如果是内核中创建的系统工作线程,则只有内核栈。只要代码在内核中运行,线程就一定是使用其内核栈的。栈的主要作用是维护函数调用帧,以及为局部变量提供空间。         在Windows里,一个线程的用户空间的信息都记录在了TEB中,而TEB中又有一个域叫做NtT

2012-10-09 15:58:43 3550

原创 uuid.lib(shguids2.obj) : fatal error LNK1103 链接错误

IDE版本:VS2005OS:Win7SDK:windows sdk 7 链接错误:uuid.lib(shguids2.obj) : fatal error LNK1103: debugging information corrupt; recompile module. 搞了大半天发现,安装个ms补丁就ok!:https://connect.microsoft.c

2012-10-08 16:25:34 1638

转载 WDK/DDK :warning treated as error

WDK/DDK中掉 error C2220: warning treated as error  其实就是关掉编译选项的问题…网上提得最多的就是修改 WDKPATH\i386.inc文件中的MSC_WARNING_LEVEL=$(MSC_WARNING_LEVEL) $(COMPILER_WX_SWITCH)改为MSC_WARNING_LEVEL=$(MSC

2012-08-14 17:22:11 1490

转载 MFC 窗口重绘

在刷新窗口时经常要调用重绘函数MFC提供了三个函数用于窗口重绘InvalidateRect(&Rect)Invalidate()UpdateWindow()当需要更新或者重绘窗口时,一般系统会发出两个消息WM_PAINT(通知客户区有变化)和WM_NCPAINT(通知非客户区有变化)--WM_NVPAINT系统会自己搞定--WM_PAINT消息对应的函数是OnPai

2012-07-31 10:13:30 12273

转载 visual C++ 2010 MFC 不收缩隐藏那些不经常使用的菜单项

作者:TheLostMind最近写了个小程序,用MFC向导生成了一个单文档模板,后添添改改做的,但是菜单项老师隐藏了,这点很不爽,google了一下,没结果,很多人问,查询了下MSDN,发现:Remarks The CMFCMenuBar class is a menu bar that implements docking functionality. It resemb

2012-07-19 10:43:38 2832 1

原创 设置VC6.0支持Unicode编程环境

VC6.0,默认支持的是ANSI.因此使用VC++6.0进行Unicode编程主要做以下几项工作: 1、如果你按装VC++ 6.0时不是完全安装,会报各种库丢失,如mfc42u.lib等..建议修复选各完全安装。2、为工程添加UNICODE和_UNICODE预处理选项。   具体步骤:打开[工程]->[设置…]对话框,在C/C++标签对话框的“预处理程序定义”中去除

2012-07-02 12:24:22 865

转载 do{...}while(0)的妙用

do...while(0)的妙用在C++中,有三种类型的循环语句:for, while, 和do...while, 但是在一般应用中作循环时, 我们可能用for和while要多一些,do...while相对不受重视。    但是,最近在读我们项目的代码时,却发现了do...while的一些十分聪明的用法,不是用来做循环,而是用作其他来提高代码的健壮性。1. do...while

2012-06-11 21:13:36 612

转载 Windbg内核调试之四: Dump文件分析

Dump 文件分析很大程度上就是分析蓝屏产生的原因。这种系统级的错误算是Windows提示错误中比较严重的一种(更严重的还有启动黑屏等硬件或软件兼容性错误等等)。说它是比较严重,是因为毕竟Windows还提供了dump文件给用户分析,至少能比较容易的找到错误的原因。一般蓝屏要么是内核程序中的异常或违规,要么是数据结构的损坏,也有boot或shutdown的时候内核出错。有时候蓝屏是一闪而过,紧接着

2012-06-08 14:55:36 2053

转载 Windbg内核调试之三: 调试驱动

这次我们通过一个实际调试驱动的例子,来逐步体会Windbg在内核调试中的作用.由于条件所限,大多数情况下,很多人都是用VMware+Windbg调试内核(VMware的确是个好东西).但这样的调试需要占用大量的系统资源,对于和我一样急性子的朋友来说这是不可接受的:).利用双机调试就可以让你一边喝咖啡一边轻松的看结果,而不至于郁闷的等待每次长达数分钟的系统响应.有关双机调试的基本设置,请参考:h

2012-06-08 14:55:00 9362

转载 Windbg内核调试之二: 常用命令

运用Windbg进行内核调试, 熟练的运用命令行是必不可少的技能. 但是面对众多繁琐的命令, 实在是不可能全部的了解和掌握. 而了解Kernel正是需要这些命令的指引, 不断深入理解其基本的内容. 下面, 将介绍最常用的一些指令, 使初学Kernel调试的朋友们能有一个大致的了解. 至于如何熟练的运用它们, 还需要实际的操作过程中进行反复的琢磨.Windbg能够方便的进行远程调试和本地进程

2012-06-08 14:54:20 1201

转载 Windbg内核调试之一: Vista Boot Config设置

Windbg进行内核调试,需要一些基本的技巧和设置,在这个系列文章中,我将使用Windbg过程中所遇到的一些问题和经验记录下来,算是对Kernel调试的一个总结,同时也是学习Windows系统内核的另一种过程。很多人说Windbg不如SoftIce好用, 但是我使用过程中还是觉得Windbg能更好的反映系统状态, 而且相比SoftIce, Windbg更稳定(虽然它的部分操作略显复杂),

2012-06-08 14:53:48 1043

转载 Windbg内核调试之五: 一次利用Dump文件调试Deadlock的实战

http://www.cnblogs.com/Sonic2007/archive/2010/09/01/1541988.html最近遇到项目的一个bug,安装产品之后系统hang住。大致的现象是系统logon之后,Taskbar显示,然后hang住,Ctrl+Alt+Del不能调出TaskManager,Mouse不能移动,硬盘LED不闪烁。由于机器不在手边,远程调试又极其慢(实际

2012-06-08 14:52:39 5781

转载 Vmware与主机间共享文件的七种方法(附图+详解)

相信很多玩电脑的人都用过Vmware吧?(Vmware是虾米东西?倒!点下这里就知道了),不过好多人都不清楚如何在本机和虚拟机间共享文件和数据,那么今天我就给大家分享下我所知道的方法,如果你也有不错的方法或本文有什么错误请告诉我,谢谢!测试环境是:物理机:win Xp SP2 打全所有系统补丁虚拟机版本:VMware workstation 6.0.0 Build 45

2012-06-08 10:10:31 1543

转载 SSDT HOOK (MDL方法)

更改SSDT的只读属性(MDL方法)内存描述符列表 (MDL) 是一个系统定义的结构,通过一系列物理地址描述缓冲区。执行直接 I/O 的驱动程序从 I/O 管理器接收一个 MDL 的指针,并通过 MDL 读写数据。一些驱动程序在执行直接 I/O 来满足设备 I/O 控制请求时也使用 MDL。驱动程序编写人员不应该假设 MDL 描述的内存页的顺序或内容。驱动程序不得依赖于 MDL 指向的

2012-06-07 17:07:26 3054

转载 自动提升Vista、Win7上进程的权限--RT_MANIFEST

很多时候自己开发的应用程序需要以更高的用户权限来运行,特别是在Vista、Win7下面。如何使得自己编写的应用程序在运行时也如同下面的方式一样,提示权限提升。  方法:1.按照通常方式,开发VC程序,编译、生成.exe文件;2.在Debug或Release文件夹下面,新建一个“程序名+.exe+.manifest”的文件。若你生成的应用程序名

2012-06-06 11:00:31 3961

原创 检测内存泄漏

////////////////////////////////////-----------test.cpp//包含文件不能变顺序#define _CRTDBG_MAP_ALLOC#include #include #define new new( _CLIENT_BLOCK, __FILE__, __LINE__)int main(){

2012-05-31 15:07:58 1320

转载 硬件断点的原理 ---- OD各种断点的原理

1.前言      在我跨入ollydbg的门的时候,就对ollydbg里面的各种断点充满了疑问,以前我总是不明白普通断点,内存断点,硬件断点有什么区别,他们为什么有些时候不能混用,他们的原理是什么,在学习了前辈们的文章以后,终于明白了一些东西。希望这篇文章能让你对硬件断点的原理和使用有一些帮助2.正文------------------------------------------

2012-05-27 19:43:16 10069

原创 细看了下NTSTATUS

msdn 中的:The following figure shows the layout for NTSTATUS values. NTSTATUS Layout   313029 28                       16 15                                  0// +----+--+---------------------

2012-05-23 22:36:19 2768

原创 驱动复习总结--指明代码加载内存位置的几种方式

//第一种方法////  demo.h//#pragma once#ifdef __cplusplusextern "C"{#endif#include #ifdef __cplusplus}#endif #define PAGEDCODE  code_seg("PAGE")  //分页内存#define LOCKEDCODE code_se

2012-05-21 20:21:20 1684 1

转载 DbgPrint格式 输出

DbgPrint 输出1) 直接打印字符串。DbgPrint(“Hello World!”);2) 空结尾的字符串,你可以用普通得C语法表示字符串常量char variable_string[]  =  “Hello World”;DbgPrint(“%s”, variable_string);3) 空结尾的宽字符串(WCHAR类型)WCHAR     stri

2012-05-21 19:44:45 26368

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除