cdo

导航

随笔分类 -  C/C++/VC/MFC

1 2 3 下一页

C/C++/VC/MFC
挂钩 NtResumeThread 实现全局Hook
摘要:创建时间:2008-05-25文章属性:原创文章提交:BITS (zhouzhenster_at_gmail.com)挂钩 NtResumeThread 实现全局Hookzhouzhenster@gmail.comzhouzhen[E.S.T]挂钩一直是Hack 编程中永恒的主题,基本高级的Rootkit 程序多多少少都会使用Hook 技术。似乎Hook 都被讲烂了,不论是Ring3 的还是Rin... 阅读全文

posted @ 2008-06-29 21:22 Cdo 阅读(1200) 评论(0) 推荐(0)

static_cast、dynamic_cast、reinterpret_cast、和const_cast
摘要:(转自http://hi.baidu.com/seekvista/blog/item/87845a60ae248845ebf8f8dd.html)关于强制类型转换的问题,很多书都讨论过,写的最详细的是C++ 之父的《C++ 的设计和演化》。最好的解决方法就是不要使用C风格的强制类型转换,而是使用标准C++的类型转换符:static_cast, dynamic_cast。标准C++中有四个类型转换符... 阅读全文

posted @ 2008-06-29 21:21 Cdo 阅读(380) 评论(0) 推荐(0)

TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
摘要:下载源代码这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人叫TCP打孔(我的朋友小妞听说后问“要打孔啊,要不要我帮你去借个电钻过来啊?”“~!·¥%……·!”)。闲话少说,我们先看一下技术背景:Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用。NAT... 阅读全文

posted @ 2007-08-09 21:10 Cdo 阅读(1148) 评论(1) 推荐(0)

C语言高级测试:为C程序员准备的0x10个最佳问题
摘要:整个测试遵循以下的约定:u 假定在所有的程序中必须的头文件都已经被正确包含。考虑如下的数据类型:u char 为1个字节u int 为4个字节u long int 为4个字节u float 为4个字节u double 为个8字节u long double 为 8个字节u 指针为4个字节1. Consider the following program:#include<setjmp.h>... 阅读全文

posted @ 2006-10-23 00:45 Cdo 阅读(3523) 评论(0) 推荐(0)

四种方法实现VC枚举系统当前进程
摘要:在Windows 2000以上的MS操作系统,通过Windows的任务管理器可以列出当前系统的所有活动进程(如图1所示),在Windows XP中,更是在控制台下增加了一条Tasklist命令,让系统下的所有进程无所遁行(如图2所示)。这一切是怎么实现的呢?500)this.style.width=500;" align=no图 1500)this.style.width=500;" align... 阅读全文

posted @ 2006-08-30 23:12 Cdo 阅读(4391) 评论(0) 推荐(0)

追根究底,剖析MFC六大关键技术
摘要:from http://blog.csdn.net/liyi268/archive/2005/02/22/297875.aspx 追根究底,剖析MFC六大关键技术题外话:我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要了解MFC的具... 阅读全文

posted @ 2006-03-14 17:18 Cdo 阅读(5694) 评论(12) 推荐(1)

VC中利用多线程技术实现线程之间的通信
摘要:当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的。因此掌握多线程多任务设计方法对每个程序员都是... 阅读全文

posted @ 2006-03-10 22:38 Cdo 阅读(3747) 评论(0) 推荐(0)

C语言中的位域
摘要:有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态,用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所谓“位域”是把一个字节中的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序中按域名进行操作。 这样就可以把几个不同的对象用一个字节的二进制位域来... 阅读全文

posted @ 2006-02-16 11:03 Cdo 阅读(3249) 评论(2) 推荐(0)

Kernel Mode Sockets Library
摘要:创建时间:2006-01-13 更新时间:2006-01-16文章属性:转载文章提交:KiSSinGGer (kyller_clemens_at_hotmail.com)Kernel mode sockets library for the masses@ :: deep article :: Dec 31 2005, 02:27 (UTC+0) valerino writes: Ker... 阅读全文

posted @ 2006-02-09 16:36 Cdo 阅读(2877) 评论(0) 推荐(0)

Windows平台内核级文件访问
摘要:创建时间:2006-02-03文章属性:原创文章提交:baiyuanfan (baiyuanfan_at_163.com)Windows平台内核级文件访问作者:baiyuanfan (baiyuanfan@163.com)日期:2.1,20061.背景 在windows平台下,应用程序通常使用API函数来进行文件访问,创建,打开,读写文件。从kernel32的CreateFile/ReadF... 阅读全文

posted @ 2006-02-09 15:53 Cdo 阅读(2577) 评论(0) 推荐(0)

单向链表当中的环路判别问题
摘要:From: http://blog.csdn.net/happy__888/archive/2005/12/21/558356.aspx有一个单向链表,如何判定这个链表当中是否包含有环路,以及如何定位环路在链表当中的开始点呢? 关于第一个问题,网络上可以搜索到,用两个指针来遍历这个单向链表,第一个指针p1,每次走一步;第二个指针p2,每次走两步; 当p2 指针追上 p1的时候,就表明链表当中有环... 阅读全文

posted @ 2005-12-27 10:49 Cdo 阅读(2725) 评论(3) 推荐(0)

VC++中使用用户自定义消息及自定制窗口技巧
摘要:Windows 应用程序所要做的每项工作几乎都是基于消息处理的, Windows 系统消息分为常用 Windows 消息,控件通知消息和命令。然而,有时我们需要定义自己的消息来通知程序什么事情发生了,这就是用户自定义消息。 ClassWizard 并没有提供增加用户自定义消息的功能,所以要使用用户自定义消息,必须手工编写代码。然后 ClassWizard 才可以象处理其它消息一样处理你自定义的消息... 阅读全文

posted @ 2005-12-12 10:46 Cdo 阅读(3183) 评论(0) 推荐(0)

C/C+语言struct深层探索
摘要:作者:宋宝华 出处:PConline1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备... 阅读全文

posted @ 2005-12-08 13:27 Cdo 阅读(760) 评论(0) 推荐(0)

也谈字节对齐带来效率的差异
摘要:From: http://blog.csdn.net/goodluckyxl/archive/2005/10/13/502882.aspx 因为今天和同事谈到了ARM平台下数据总线宽度及对齐方式对程序效率的影响问题在定义结构数据类型时,为了提高系统效率,要注意字长对齐原则。正好有点感触给大家谈谈 本人水平有限的很有什么问题请朋友指正:本文主要给大家解释下所谓的对齐到底是什么?怎么对齐?为什么会对... 阅读全文

posted @ 2005-12-07 16:45 Cdo 阅读(1407) 评论(0) 推荐(0)

什么是守护进程,以及如何编写
摘要:守护进程守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、Web服务http等。同时,守护进程完成许多系统任务。比如,作业规划进程crond、打印进程lqd等。这里主要说明守护进程的进程结构,以及如何编写守护进程程序... 阅读全文

posted @ 2005-10-22 09:36 Cdo 阅读(2669) 评论(0) 推荐(0)

关于C编译器里字节对齐的问题
摘要:是看了CSDN上一篇文章,很有感想,把问题总结了一下,找了一些资料,把知识点结合了一下,算一个资源的集合吧.声明:只是为了方便个人学习用:)首先是来自http://blog.csdn.net/wenddy112/articles/300583.aspx>上的一个问题:对于下面的结构体struct test{ char x1; short x2; float x3; ... 阅读全文

posted @ 2005-10-07 14:43 Cdo 阅读(1713) 评论(1) 推荐(0)

第十章 围绕p()与(*p)()的争论- -
摘要:对于一个函数:void func(void); 我们通常可以定义一个这样的函数指针指向它:void (*p)(void) = func; 通过p调用func时,通常有两种写法: p();或者(*p)(); 围绕这两种写法,当初C89制定的时候曾经有过争论。(*p)();是一种旧式的规定,旧式规定圆括号左边必须具有“函数”类型,如果是指向函数的指针,那么必须加上*声明符。但C89不再... 阅读全文

posted @ 2005-09-27 21:28 Cdo 阅读(316) 评论(0) 推荐(0)

第九章 指针与const- -
摘要:const一词是英文constant的缩写,设立这个关键字的本意,是希望让它所修饰的对象成为一个常量。记得在国家间的外交中,有一个经常用到的术语:“从事与身份不符的活动”,这个const恰恰也正从事着这样的活动,呵呵。C语言可以有三种方法定义一个常量:#define、const和枚举,但只有枚举才是真正的常量,什么是真正的常量?真正的常量是没有存储空间的,是一个右值,这意味着通过任... 阅读全文

posted @ 2005-09-27 21:28 Cdo 阅读(388) 评论(0) 推荐(0)

第八章 右左法则----复杂指针解析- -
摘要:上一章费那么多唇舌讨论C语言的声明,其实目的都是为了这一章,期望读者通过对C语言声明形式的详细了解,树立声明嵌套的观念,因为C语言所有复杂的指针声明,都是由各种声明嵌套构成的。如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法。不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法。C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何... 阅读全文

posted @ 2005-09-27 21:27 Cdo 阅读(351) 评论(0) 推荐(0)

第七章 C语言声明详解- -
摘要:人们常说,C语言的声明太复杂了,的确,这也是C语言饱受批评的地方之一。不过,笔者认为,真正要受到批评的不是语言本身,而是那些传播者。传播者们通常都有一个共识:讲述要由浅入深。作为原则,笔者并非要反对它,毕竟笔者对C语言的学习,也经历了相同的过程。但是,由浅入深并不意味着一切从简,以偏盖全。计算机语言不同于数学理论(虽然它的确根植于数学,与数学密不可分),数学理论是一种循序渐进的过程... 阅读全文

posted @ 2005-09-27 21:24 Cdo 阅读(628) 评论(0) 推荐(0)

1 2 3 下一页