
C/C++开发
文章平均质量分 77
wx红杉树
花开两朵,各表一枝(公有云和私有云)。凭借领先的技术和产品,对行业的深刻理解,先进的服务理念和能力,通过开放、灵活的产业合作,秉承领先驱动云化的使命,持续研发适合中国国情的云计算系统。
展开
-
编程实现盗版QQ
源码下载(附件1 )一、思路分析 (一) 数据包的角度 (二) 钩子角度 1. 钩子简介 2. 程序流程 ;二、 实现过程 (一) 定义宏 (二) 枚举进程找到QQ.exe (三) 枚举所有窗口,找属于QQ.exe的窗口 (四) 获取用户名、密码、登陆按钮的句柄 (五) 创建钩子用的DLL (六) 安装钩子 一直以来我对盗QQ这种技术都比较的好奇,最近为了练原创 2008-01-22 15:28:00 · 7086 阅读 · 2 评论 -
Visual C++中的图形特技
Visual C++中的图形特技 随着计算机信息表示及实现的多媒体化,在许多学习软件、游戏软件,以及多媒体课件制作软件中,经常使用各种图形显示技巧,如图形的推拉、交错、雨滴状、百页窗、积木随机堆叠等显示模式。这样使画面变得更为生动活泼,更能吸引用户,也为更好地发挥软件的功能奠定了基础。本文就Visual C++ 6.0中实现图形的各种显示技巧的原理及具体方法做些探讨。 基本原理 在原创 2008-01-30 16:09:00 · 823 阅读 · 0 评论 -
C/C++语言void及void指针深层探索
1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。 2.void的含义 void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。 void几乎只有“注释”和限制程序的作用,因为从来没有人会定义原创 2008-01-23 14:12:00 · 657 阅读 · 0 评论 -
GCC for Win32开发环境介绍(1)
GCC for Win32开发环境介绍(1)第一章 在视窗操作系统下的GCC第一节 GCC家族概览GCC是一个原本用于Unix-like系统下编程的编译器。不过,现在GCC也有了许多Win32下的移植版本。所以,也许对于许多Windows开发者来说,GCC还是一个比较陌生的东西。所以,我希望通过这章的叙述,让你——一个Windows开发者对GCC这一个优秀的编译器有一个大概的转载 2008-01-22 18:06:00 · 759 阅读 · 0 评论 -
自己写的一个在线升级的程序!
void CUpdateDlg::OnButtonDoupdate() { // 读取升级文件 CFileStatus rStatus; CString szIniData; CString inFile; CString tmp; inFile=m_szPath+"//update.in原创 2007-11-07 10:00:00 · 853 阅读 · 0 评论 -
perl如何与c语言结合
现在很多开源的项目都用Perl来实现,例如spamassassin,一个垃圾邮件过滤器,源代码里面即有Perl程序,又有c语言程序。本人以前没有接触过perl程序,所以有几个问题想请教各位大侠 1、spamassassin的源代码里有.pl及.pm两者后缀结尾的perl文件,这两者有什么区别?perl也象c语言一样需要头文件么,如果有的话一般是什么后缀结尾的呢原创 2008-01-24 09:52:00 · 2344 阅读 · 0 评论 -
详细讲解C++ 类的继承
一个私有的或保护的派生类不是子类,因为非公共的派生类不能做基类能做的所有的事,就是指在公开场合,但是在类内部可以的一、引言在C++中,类是提供封装的逻辑单位,类的每一个对象都包含有描述其自身状态的数据集合,并且通过接收特定的消息来处理这个数据集合。如果程序设计人员能够通过增加、修改或替换指定类的部分内容的方法对该类进行剪裁,就可以适应不同的应用,从而在很大程度上增强了数据封装的价值,而接下原创 2008-01-23 09:16:00 · 29885 阅读 · 10 评论 -
Windows上安装MinGW+MSYS
目的:想在Windows下,建立一个类似linux的环境(命令行环境就可)。解决方案:1,Cygwin : 功能很强大的linux,安装文件很大。2. MSYS+MinGW : 偶的评价:麻雀虽小,五脏具全。说明:MinGW - Minimalist GNU for Windows 网站:http://www.mingw.org/MinGW: A collection of free原创 2008-01-22 18:07:00 · 1133 阅读 · 0 评论 -
顺序栈的实现(C语言)
顺序栈的C语言实现#include "stdafx.h"//初始长度为100#define StackSize 100typedef char DataType;typedef struct stack{ DataType data[StackSize]; int top;}SqStack;//初始化栈void InitStack(SqStack *S){ S->top = -1;原创 2007-10-17 15:44:00 · 689 阅读 · 0 评论 -
缓冲区溢出原理浅析以及防护
【摘要】本文从程序语言本身的缺陷,不够健壮的角度出发,详细分析了缓冲溢出攻击的基本原理,描述了黑客利用缓冲区漏洞进行系统攻击的一般过程,最后又简单讨论了几种防范溢出攻击的策略. 【关键字】缓冲溢出; 程序跳转; 长跳转缓冲区; 近些年来,黑客攻击事件频繁发生,尤其是缓冲区溢出漏洞攻击占据了网络远程攻击的绝大多数. 因为这类攻击可以使任何人获得系统主机的完全控制权,所以它代表了原创 2007-10-17 15:40:00 · 995 阅读 · 0 评论 -
汉诺塔游戏的设计(附代码)
汉诺塔游戏的设计汉诺塔问题是最经典的递归问题,笔者就该问题设计了这个游戏,由用户交互游戏和自动演示两部分组成,支持撤销功能、选关、自动完成等功能。 首先建立了类CMap,该类主要实现用户每一步的操作和画图显示功能,记录的时候只须记录每组盘子的个数和盘子的矩形。代码和注释如下: //记录每一步的盘子的情况 class CMap { public: //每组盘子的个数 int原创 2008-01-30 16:02:00 · 3307 阅读 · 0 评论 -
VC无闪烁刷屏技术的实现
VC无闪烁刷屏技术的实现在实现绘图的过程中,显示的图形总是会闪烁,笔者曾经被这个问题折磨了好久,通过向高手请教,搜索资料,问题基本解决,现将文档整理出来以供大家参考. 1.显示的图形为什么会闪烁 我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用O原创 2008-01-30 16:07:00 · 888 阅读 · 0 评论 -
浅析C++中的this指针
有下面的一个简单的类:class CNullPointCall{public: static void Test1(); void Test2(); void Test3(int iTest); void Test4();private: static int m_iStatic; int m_iTest;};int CNullPointCall::m_转载 2008-02-13 14:03:00 · 875 阅读 · 0 评论 -
C++经典面试题
1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态?virtual修饰符会被隐形继承的。private 也被集成,只事派生类没有访问权限而已virtual可加可不加子类的空间里有父类的所有变量(static除外)同一个函数只存在一个实体(inline除外)子类覆盖它的函数不加virtual ,也能实现多态。在子类的空间原创 2008-01-31 09:41:00 · 2316 阅读 · 2 评论 -
C语言学习笔记整理
一.sizeof()1.sizeof的使用:sizeof操作符以字节形式给出了其操作数的存储大小.sizeof操作符不能用于函数类型,不完全类型或位字段。不完全类型指具有未知存储大小的数据类型,如未知存储大小的数组类型、未知内容的结构或联合类型、void类型等。 2.sizeof的结果:sizeof操作符的结果类型是size_t,它在头文件中typedef为unsigned in原创 2008-01-31 09:42:00 · 964 阅读 · 0 评论 -
用C语言编写程序实现Zip或者Rar无损压缩算法
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *HUFF.C Huffman encode for multimedia application 8*8 pixel Ve原创 2008-01-31 09:39:00 · 2664 阅读 · 1 评论 -
一个生成公章图片的简易工具
一个生成公章图片的简易工具本例的运行结果图如下<v:shapetype id="_x0000_t75"coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe"filled="f" stroked="f">原创 2008-01-30 16:06:00 · 5030 阅读 · 0 评论 -
BMP图象解析
BMP图象解析BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 一、BMP文件头 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。其结构定义如下:typedef struct tagBITMAPFILEHEADER { WORDbfType; // 位图文件的类型,必须为BM DWORD bfSize; // 位图文件的大小,原创 2008-01-30 16:05:00 · 905 阅读 · 0 评论 -
超强仿QQ自动伸缩窗口
超强仿QQ自动伸缩窗口摘要: 某天在优快云论坛上看到有人发帖询问QQ自动伸缩窗口是怎么实现的,我也好想知道,于是到百度一搜索,结果不多,来来去去都是那几篇,下载那些demo运行一下,发觉效果与QQ相差很大,于是决定自己动手做个,要求要近乎完美地模仿这个功能。由于是些效果的东西,贴图也看不出来,所以文章里就不截图了,想看效果的就直接运行源代码的demo吧。 一、观察 模仿原创 2008-01-30 16:04:00 · 1080 阅读 · 0 评论 -
Spy++原理探索(附代码)
Spy++原理初探打开VC集成开发环境,建立一个基于对话框的工程。我们把这个工程取名为SpyXX。在窗体中画上一个图片框控件(Picture)、一个静态文本控件(Static)、两个复选框控件(Check Box)和一个选项卡控件(Tab Control)。界面设计如下图。 <v:shapetype id="_x0000_t75"coordsize="21600,21600" o原创 2008-01-30 15:59:00 · 7714 阅读 · 2 评论 -
c代码--快速排序问题
void quicksort(sqlist l,int low,int high){int i,j;if(low{i=low;j=high;l.r[0]=l.r[i];do{while(il.r[0].key)--j;if(i{l.r[i]=l.r[j];++i;}while(i++i;if(il.r[j]=l.r[i];--j;}}while(i!=j);l.r[i]=l.r[0];quic原创 2008-01-31 09:38:00 · 1007 阅读 · 0 评论 -
彻底搞定C指针-指向另一指针的指针
一. 回顾指针概念:早在本系列第二篇中我就对指针的实质进行了阐述。今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧!当我们程序如下申明变量:short int i;char a;short int * pi;程序会在内存某地址空间上为各变量开辟空间,如下图所示。内存地址→6 7 8 9 10 11 12 13翻译 2007-10-12 09:30:00 · 592 阅读 · 0 评论 -
总结windows下堆溢出的三种利用方式(2)
的数据所指向的地址。我们可以控制这两个数据。 可见第二种方式的前提有三个: 1)构造堆(buf2)的flag必须含有HEAP_ENTRY_BUSY和HEAP_ENTRY_VIRTUAL_ALLOC,可以设成0xff 2)构造堆的flag前面那个字节要比0x40小 3)构造堆的上一个堆(即buf1)的长度必须大于或等于0x18+0x08即32个字节,否则在关键点三处,ESI会指向我们不能控制的区域,原创 2007-10-12 09:26:00 · 525 阅读 · 0 评论 -
总结windows下堆溢出的三种利用方式(1)
main (int argc, char *argv[]) { char *buf1, *buf2; char s[] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/x03/x00/x05/x00/x00/x01/x08/x00/x11/x11/x11/x11/x21/x21/x21/x21";buf1 = (char*)malloc (32); /* 分配两块内存转载 2007-10-12 09:24:00 · 899 阅读 · 0 评论 -
装箱问题(NOIP竞赛原题)(动态规划)
/*【2001年普及组4】装箱问题Time Limit:1000MS Memory Limit:65536KTotal Submit:512 Accepted:251 Description 有一个箱子容量为v(正整数,o≤v≤20000),同时有n个物品(o≤n≤30),每个物品有一个体积 (正整数)。要求从m个物品中,任取若千个装入箱内,使箱子的剩余空间为最小。 [样例] 输入: 24 一个转载 2007-10-19 09:36:00 · 2998 阅读 · 0 评论 -
质数和分解问题
/*质数和分解(normal)Time Limit:1000MS Memory Limit:65536KTotal Submit:178 Accepted:66 Description 任何大于 1 的自然数 n,都可以写成若干个大于等于 2 ,且小于等于 n 的质数之和表达式(包括只有一个数构成的和表达式的情况),并且可能有不止一种质数和的形式。例如9 的质数和表达式就有四种本质不同的形式:转载 2007-10-19 09:33:00 · 960 阅读 · 0 评论 -
方阵填数问题(模拟法)
/*【基础】:方阵填数(easy)Time Limit:1000MS Memory Limit:65536KTotal Submit:226 Accepted:109 Description 在一个N*N的方阵中,填入1、2、…、N*N个数,并要求构成如下的格式 例: N=5 13 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4 9 8转载 2007-10-19 09:27:00 · 2018 阅读 · 0 评论 -
整数分解之和最大问题(全分成3,少分成2)
/* 整数分解(版本2)一个正整数可以分解成若干个自然数之和。请你编一个程序,对于给出的一个正整数n(1例如n=10,则可以分解为2+2+3+3,乘积m=2*2*3*3=36 输入格式 Input Format 一个正整数n 输出格式 Output Format 输出分解的自然数的最大乘积m */ #include stdio.h>#define MA转载 2007-10-19 10:08:00 · 1300 阅读 · 0 评论 -
字符串技巧排序
排序Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2200 Accepted Submission(s): 537Problem Description输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行转载 2007-10-19 10:06:00 · 585 阅读 · 0 评论 -
求最大公约数的快速算法
/* stein 算法求最大公约数,和欧基里德算法相比,效果更好: 主要思想如下: 化归思想 1.m为奇数时: (1)n也为奇数:gcd(m,n) = gcd((m+n)/2,(m-n)/2) ; (2)n为偶数: gcd(m,n) = gcd(m,n/2) ; 2.m为偶数时: (1) n也为偶数:gcd(m,n) = gcd(m/2,n/2); (2) n为奇数转载 2007-10-19 10:02:00 · 1511 阅读 · 0 评论 -
猴子分桃问题
/*【基础】:猴子分桃(normal)Time Limit:4000MS Memory Limit:65536KTotal Submit:258 Accepted:81 Description 有一堆桃子和N只猴子,第一只猴子将桃子平均分成了M堆后,还剩了1个,它吃了剩下的一个,并拿走一堆。后面的猴子也和第1只进行了同样的做法,请问N只猴子进行了同样做法后这一堆桃子至少还剩了多少个桃子(假设剩下转载 2007-10-19 09:34:00 · 1390 阅读 · 0 评论 -
进制转换问题
/*【基础】:进制转换问题(easy)Time Limit:1000MS Memory Limit:65536KTotal Submit:271 Accepted:153 Description 若将一个正整数n化为二进制,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。 例如:(13)10=(1101)2,其中1的个数为3,0的个数为1,则称此转载 2007-10-19 09:26:00 · 741 阅读 · 0 评论 -
打保龄球(normal)
/*【模拟试题】:打保龄球(normal)Time Limit:1000MS Memory Limit:65536KTotal Submit:58 Accepted:9 Description 打保龄球是用一个滚球去打击十个站立的柱,将柱击倒。一局分十轮,每轮可滚球一次或多次,以击倒的柱数为依据计分。一局得分为十轮得分之和,而每轮的得分不仅与本轮滚球情况有关,还可能与后续一两轮的滚球情况有关转载 2007-10-19 09:23:00 · 1495 阅读 · 0 评论 -
求先序序列(NOIP竞赛原题)
【2001年普及组2】求先序排列Time Limit:1000MS Memory Limit:65536KTotal Submit:208 Accepted:99 Description 给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。Input 一棵二叉树的中序与后序排列Output 先序排列Sample Input BADC BDCASampl转载 2007-10-19 09:37:00 · 1158 阅读 · 0 评论 -
求质因子个数的方法
/*求质因子的个数 */ #include stdio.h> int main(void) { long x0,y0 ; long k,total=0; int i,j,num=0 ; scanf("%d",&k);转载 2007-10-19 09:40:00 · 2075 阅读 · 0 评论 -
模式匹配小算法
由于项目需要,最近写了一个模式匹配算法,支持%(代表一个或者任意个字符),_(代表一个字符)通配符号,自己在vc6下测试通过.bool regexMatch(unsigned char* des ,int desLen ,unsigned char* source) { int len = 0 ; unsigned char* tempSou = 0 ; unsigned char* tem转载 2007-10-26 17:03:00 · 823 阅读 · 0 评论 -
C语言面试题大汇总之微软亚洲技术中心面试题
1.进程和线程的差别。 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行 (3)拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源. (4)系统开销:在创建或撤消进程翻译 2007-10-08 09:57:00 · 827 阅读 · 0 评论 -
c语言学习经验
1.关于几个地址0xCCCCCCCC在栈上分配,但没有初始化 0xCDCDCDCD 在堆区分配,但没有初始化0xDDDDDDDD 使用在堆上已经释放的内存2.std::cout的重定位std::ofstream out("cout.txt");std::streambuf *oldbuf = std::cout.rdbuf(out.rdbuf());3类型转化在(转载 2007-10-26 17:06:00 · 926 阅读 · 0 评论 -
几道经典C 语言笔试题
1.int main(){ int i, n = 20; for (i = 0; i printf("*"); return 0;}Change/add only one character and print * exactly 20 times.(there are atleast 3 solutions to this problem :-)2. display belo原创 2007-10-06 14:46:00 · 876 阅读 · 0 评论 -
嵌入式开发—C语言面试题
预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你翻译 2007-10-08 09:59:00 · 882 阅读 · 0 评论