摘要: 内核对象主要要用来供系统和应用程序管理系统资源,像进程、线程、文件等。存取符号对象、事件对象、文件对象、作业对象、互斥对象、管道对象、等待计时器对象等都是内核对象。我们在编程时经常要创建、打开和操作它们。内核对象通过调用函数来创建,如要创建文件映射对象,就调用CreateFileMapping函数。每个内核对象都会分配一个内存块,只能由其内核访问。该内存块是一种数据结构,用于管理对象的各种信息。 我们的应用程序不能直接访问内核对象的数据结构。需要通过Windows提供的函数来访问。 内核对象由内核拥有,并不是进程所拥有。每个内核对象都有一个计数器来存储有多少个进程在使用它的信息。 内核对象有安 阅读全文
posted @ 2009-04-08 12:34 dzqabc 阅读(269) 评论(0) 推荐(0) 编辑
摘要: VariantClear 和 VariantInit 函数两个函数是做什么的呢?近日程序出错,我不得不认真研究了一下它们的作用。1.VariantClear()函数Clears the contents of a variant and sets the variant to VT_EMPTY.如何做到Clears the contents of a variant (清空变量的内容呢)? 实际是通过调用相应变量类型的释放空间的方法来达到这个目的的。而且他不仅释放了空间,还初期化了变量。简单的英文说明,不译了。CommentsVariantClear is used to clear the. 阅读全文
posted @ 2009-04-08 12:28 dzqabc 阅读(4015) 评论(0) 推荐(0) 编辑
摘要: 9.6.2 互斥对象与关键代码段的比较就等待线程的调度而言,互斥对象与关键代码段之间有着相同的特性。但是它们在其他属性方面却各不相同。表9 - 1对它们进行了各方面的比较。表9-1 互斥对象与关键代码段的比较特性互斥对象关键代码段运行速度慢快是否能够跨进程边界来使用是否声明HANDLE hmtx;CRITICAL_SECTION cs;初始化h m t x = C r e a t e M u t e x (N U L L,FA L S E,N U L L);I n i t i a l i z e C r i t i c a l S e c t i o n ( & e s );清除C l 阅读全文
posted @ 2009-04-08 11:36 dzqabc 阅读(537) 评论(0) 推荐(0) 编辑
摘要: ResetEvent ResetEvent 这个函数把指定的事件对象设置为无信号状态。 BOOL ResetEvent( HANDLE hEvent ); 参数说明: hEvent [in] 指向事件对象的句柄.由 CreateEvent or OpenEvent 函数返回。 这个句柄需要拥有EVENT_MODIFY_STATE 访问权限. 函数成功,返回非0值,否则返回0值,可以调用GetLastError得到错误的详细信息。 Remarks 一个事件对象一直都保持在无信号状态,直到显式调用 SetEvent or PulseEvent 函数把它设置到有信号状态。 这些无信号的事件对象会阻塞 阅读全文
posted @ 2009-04-07 16:55 dzqabc 阅读(554) 评论(0) 推荐(0) 编辑
摘要: ◆ C++中通过溢出覆盖虚函数指针列表执行代码 作者:watercloud 主页:http://www.nsfocus.com 日期:2002-4-15 目录: 1. C++中虚函数的静态联编和动态联编 2. VC中对象的空间组织和溢出试验 3. GCC中对象的空间组织和溢出试验 4. 参考<一> C++中虚函数的静态联编和动态联编 C++中的一大法宝就是虚函数,简单来说就是加virtual关键字定义的函数。 其特性就是支持动态联编。现在C++开发的大型软件中几乎已经离不开虚函数的 使用,一个典型的例子就是虚函数是MFC的基石之一。 这里有两个概念需要先解释: 静态联编:通俗点来讲 阅读全文
posted @ 2009-04-03 17:18 dzqabc 阅读(425) 评论(0) 推荐(0) 编辑
摘要: C++中extern “C”含义深层探索1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似以下的结构? #ifndef __INCvxWorksh#define 阅读全文
posted @ 2009-04-03 16:56 dzqabc 阅读(189) 评论(0) 推荐(0) 编辑
摘要: Firefox浏览器兼容Javascript脚本的方法 ( 2009/3/18 13:14 )本文关键字:遇到了FireFox和IE脚本不兼容的问题 1.window.event兼容脚本 function getEvent(){ //获取浏览器事件,同时兼容ie和ff的写法 if(document.all) return window.event; func=getEvent.caller; while(func!=null){ var arg0=func.arguments[0]; if(arg0){ if((arg0.constructor==Event arg0.constructor. 阅读全文
posted @ 2009-04-01 08:30 dzqabc 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 忘记 VSS Admin 密码 ! 一不小心将VSS 6 admin用户的密码忘记(再此证明我的粗心),Google了一番,找到以下信息the secret is to hack the um.dat file to remove the Admin passwordfrom offset 80 the bytes are (all numbers are hex)0:80 55 55 bc 7f 41 64 6d 69 6e 00 00 00 00 00 00 000:90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000:a0 00 00 . 阅读全文
posted @ 2009-03-30 10:37 dzqabc 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 突发奇想,同时也实验了一下: 将乱码的网页文件保存为Unicode编码并且添加签名(使用Emeditor),相信多数浏览器都支持Unicode,然后再打开,就会发现编码已经锁定为Unicode编码不可变更了 初步实验成功,不保证一定行,呵呵 阅读全文
posted @ 2009-03-27 17:26 dzqabc 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 如何使用DLL函数动态加载-静态加载 <!--google_ad_client = "pub-8432098110340913";/* busfly_ss_内容区左上 250x250, 创建于 08-2-2 */google_ad_slot = "2731136837";google_ad_width = 250;google_ad_height = 250;//-->公司里的项目里用到加密解密,使用的是客户指定的DLL库来加密解密.开始,我按照以前的方法来使用DLL库,这里也介绍下吧,虽然网上很多.一般动态加载DLL的步骤如下:HINSTA 阅读全文
posted @ 2009-03-27 17:15 dzqabc 阅读(361) 评论(0) 推荐(0) 编辑