博文

MFC入门<4>: 消息映射(2006-08-22 13:37:00)

摘要:  引用:http://www.czvc.com/tech/MFCJMJC/mfc.html  应用程序放在窗口中的任何用户界面对象都具有两种可控制的特性:1) 它的外观,2) 它响应事件的行为。在上一讲中,你已经学习了CStatic控制和如何使用样式属性来定制用户界面对象的外观。这些概念可用于MFC中的所有不同控制类。  在本讲中,我们将介绍CButton控制,以理解消息映射和简单的事件处理。然后还要介绍使用CScrollBar控制的稍微复杂点的例子。  理解消息映射  在第二讲中,MFC程序不包括主要函数或时间循环。所有的事件处理都是作为CWinApp的一部分在后台处理的。因为它们是隐藏的,所以我们需要一种方法来告诉不可见的时间循环通告我们应用程序所感兴趣的事件。这需要一种叫做消息映射的机制。消息映射识别感兴趣的事件然后调用函数来响应这些事件。  例如,如果你要编写一个程序,当用户按下标有“退出”的按钮时要退出应用程序。在程序中,你编写代码来建立按钮:你指示按钮应如何动作。然后,为其父窗口建立用户单击按钮时的消息映射,它试图要传递消息给其父窗口。为了建立父窗口的消息,你要建立截取消息映射的机制,并且使用按钮的消息。当一指定的按钮事件发生时,消息映射会请求MFC调用一指定的函数。在这种情况下,单击退出按钮就是所感兴趣的事件。然后你把退出应用程序的代码放到指定的函数中。  其它的工作就由MFC来做了。当程序执行时,用户单击“退出”按钮时,按钮就会自己加亮。然后MFC自动调用相应的函数,并且程序会终止。只使用很少的几行代码你就响应了用户事件。  CButton类  在上一讲中所讨论的CStatic控制是唯一不响应用户时间的控制。Windows中所有的其它控制都可响应用户事件。第一,当用户处理它们时,它们会自动更新其外观(例如,当用户单击按钮时,按钮会自己加亮以给用户一个反馈)。第二,每个不同的控制都要发送信息给你的代码以使程序能响应用户的需要。例如,当单击按钮时,按钮就会发送一个命令消息。如果你编写代码接收消息,则你的代码就能响应用户事件。  为了理解这个过程,我们从CButton控制开始。下面的代码说明了建立按钮的过程:  // button1.cpp  #include   #define IDB_BUTTON 100  // Declar......

阅读全文(2635) | 评论:0

对等网络(P2P)的研究与进展 改变因特网的技术(转)(2006-08-22 13:02:00)

摘要:  http://www.ppcn.net/n2276c38.aspx 对等网络(P2P)被美国《财富》杂志称为改变因特网发展的四大新技术之一,甚至被认为是无线宽带互联网的未来技术。   P2P技术不仅为个人用户提供了前所未有的自由和便利,同时也试图有效地整合互联网的潜在资源,将基于网页的互联网转变成动态存取、自由交互的海量信息网络。     P2P技术的发展以及P2P与网格技术的结合,将影响整个计算机网络的概念和人们的信息获取模式,真正实现“网络就是计算机,计算机就是网络”的梦想。   作为改变现有Internet应用模式的主要技术之一,计算机对等网络(P2P)是目前新一代互联网技术研究的热点之一。  自1999年以来,P2P的研究得到了国内外学术界和商业组织的广泛关注,同时,由于P2P本质特性不可避免地存在着许多社会、法律和技术上的问题,在学术界和产业界也一直存在着一些怀疑的力量,这在很长一段时期使人们难以对P2P做出一个准确和公平的判断。  本文较为完整地分析了P2P网络的4种典型结构,并对P2P的主要应用模式、存在的问题以及可能的发展方向进行简要阐述。1 P2P网络模型  P2P网络是一种具有较高扩展性的分布式系统结构,其对等概念是指网络中的物理节点在逻辑上具有相同的地位,而并非处理能力的对等。以Napster软件为代表的P2P技术其实质在于将互联网的集中管理模式引向分散管理模式,将内容从中央单一节点引向网络的边缘,从而充分利用互联网中众多终端节点所蕴涵的处理能力和潜在资源。相对于传统的集中式客户/服务器(C/S)模型,P2P弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既可请求服务,也可提供服务,节点之间可以直接交换资源和服务而不必通过服务器。  P2P系统最大的特点就是用户之间直接共享资源,其核心技术就是分布式对象的定位机制,这也是提高网络可扩展性、解决网络带宽被吞噬的关键所在。迄今为止,P2P网络已经历了三代不同网络模型,各种模型各有优缺点,有的还存在着本身难以克服的缺陷,因此在目前P2P技术还远未成熟的阶段,各种网络结构依然能够共存,甚至呈现相互借鉴的形式。1.1 集中目录式结构  集中目录式P2P结构是最早出现的P2P应用模式,因为仍然具有中心化的特点也被称为非纯粹的P2P结构。......

阅读全文(2891) | 评论:0

科技改变人类生活 27种划时代技术回顾 P2P名列(转)(2006-08-22 13:01:00)

摘要:    http://www.ppcn.net/n2471c39.aspx 技术发展的脚步从未停息,在过去的数年里,我们已见证了无数次新技术诞生那激动人心的时刻。最初看似异想天开的想法,现在却成了生活中不可缺少的一部分,而在现有技术的基础上,越来越多的新应用方式也逐渐涌现出来。在性能稳步攀升的同时,价钱却令人欣喜地垂直下落,使得那些曾经几近奢侈的产品如今也可以为大众所享受。     下文便是关于这些已经改变或在未来将要改变人们生活的创新技术。在这27个最具代表性的技术中,有的已经成为市场的主宰者,被大众广泛接受并应用;而另一部分方兴未艾的技术,一旦当它们成为主流,对生活产生的影响也是不可小视的。   这样的例子不胜枚举,但经过一番细致的讨论,我们决定将内容精简到下文中的27个技术。当然,每位读者都会有自己的标准,对于我们罗列的技术,你也许并不能完全赞同,也许对你来说意义重大的技术却未能入选我们的列表,在这里,欢迎各位读者和我们联络,与我们分享你的想法。   下文所有提及的技术(前三个除外)并非按照重要性排序,特此说明。   IBM 个人电脑   1981年,第一台IBM PC问世了。有趣的是,在IBM PC 5150 发布的那个时代,它并不是世界上唯一的“个人”电脑,早在IBM 之前,Apple、Atari 、Commodore 和Tandy/Radio Shack 已经推出了面向个人用户的计算产品。而5150则是IBM 进军个人计算设备市场的一枚重要棋子。   1980年,IBM 与Bill Gates进行了首次会谈,商讨的重点在于IBM PC所采用的操作系统—MS-DOS.IBM的第一台PC配置了4.77MHz 处理器—当时的速度之最—16KB内存以及一到两个软盘驱动器,并配有一台单色显示器。当时,这台计算机的售价为1545美元—相当于现在的4000美元左右。尽管在当时这台PC的售价偏高,可用的应用程序也少得可怜,但IBM 还是在几个月内就售出了13000 台。鉴于IBM 在市场上的出色表现,时代杂志为这台里程碑式的PC授予了1982年“年度人物”的称号。预计在今年,全球共会售出近两亿台IBM PC.   E-mail   谁说皇室成员和现在的年轻人之间有代沟?1976年,英国女皇就曾经发过一封电......

阅读全文(2641) | 评论:0

模拟计算器(C++)(2006-08-22 12:46:00)

摘要:  Tag:C++ C 算法   //author: baker//email:baker1203@sina.com//course designing for data structures and program design in c++//time:16/5/2006/*                         a simulant calculatordescription: requiring design a simulant calculator ,which could take operations such as +,-,*,/ ,( ),or functon SQR ,ABScondition:inputted expression can limit into int type.therefore ,you must check the expression for exactness.if the errorstake place ,the program would give an alarm. */ #include<iostream>   #include<conio.h>#include<stack>   #include<string>   #include<cstdlib>#include<math.h>   using namespace std;   void  init(string& s)     //³õʼ»¯ÊäÈë±í´ïÊ&f......

阅读全文(3366) | 评论:0

中国程序员之现状(转)(2006-08-22 12:44:00)

摘要:    Tag:Life   一个老程序员的心里话--中国程序员之现状转自 先飞电脑技术资讯网 刘光勇 (本来不想写的,实在不想看到某些人误人子弟,混淆视听,耽误了中国IT的未来,所以一吐为快) 一些人总是发出一些错误的声音,形成了劣胜优汰可怕的现象。他们在误导着中国,把我们的后继军训练成软件蓝领――――胸无大志,目光短浅,稍有点成绩就自满就自高自大的人,浑不知天外有天,外国正在虎视眈眈盯着中国的庞大市场。 由于软件蓝领的呼声人们不再致力于培养大批的高精尖人才,掌握国际尖端技术的人。而是花费心思培训一群猪出来给外国人利用。把自己的命运交给了外国人手里。结果,在最容易的管理软件领域也输给外国人,外国人派几个人过来,利用中国的劳动力,开发出软件,再卖给中国。大量的利润到了外国人手里。而我们的中的一些人还在沾沾自喜:外国人给的工资高;外国的软件好。 奴才! 低品质产品是没人要的。软件蓝领也不例外。 他们不知道中国制造一个优秀程序员的难度,还在患红眼病。程序员制造,你可算过成为一个程序的高昂代价?没日没夜地工作,没有女朋友,感情是一片沙漠,没有钱打工者的命运是悲惨的。 真想知道究竟是哪个公司的程序员为了五十块钱跳槽,是哪个公司说需要软件蓝领。 在马年,过春节,万家欢乐的时候,程序员们还在工作,用他们瘦弱的身躯,支撑起中国的软件工业。 他们把不思进取比喻为工作稳定。 国外可以在一个单位效力几十年。在国内不行。为什么?没有培训,没有上升机会。你被压榨完后就被扔掉。哪个有志向的人甘于这样的命运? 中国的程序员是世界上最好的程序员。他们不计报酬,没日没夜地工作。没有女朋友,没有节假日,可能几年后他们一无所有。他们仍在加班。 一、程序员为什么要跳槽?有两个报道: 1、“程序员为了五十块钱就跳槽”“万元月薪请不动程序员”“20%的程序员跳槽后都去了外企” 2、印度的程序员比中国稳定。 另有两个报道: 1、本科生去美国工作两年后即可年薪10万美元。当然,他们是加薪很快。 2、国外的企业都有培训。很吸引人。许多人是冲着培训去的。 国外可以在一个单位效力几十年。在国内不行。为什么?没有培训,没有上升机会。你被压榨完后就被扔掉。哪个有志向的人甘于这样的命运? 中国的程......

阅读全文(2367) | 评论:3

printf()用法(2006-08-22 12:35:00)

摘要:  Tag:C printf   printf()用法 函数名: printf 功  能: 产生格式化输出的函数 用  法: int printf(char *format...); 程序例: #include <stdio.h> #include <string.h> #define I 555 #define R 5.5 int main(void) {    int i,j,k,l;    char buf[7];    char *prefix = buf;    char tp[20];    printf("prefix  6d      6o      8x        10.2e        "           "10.2f\n");    strcpy(prefix,"%");    for (i = 0; i < 2; i++)    {       for (j = 0; j < 2; j++)          for (k = 0; k < 2; k++)      for (l = 0; l < 2; l++)      ......

阅读全文(2603) | 评论:0

OpenGL基本框架(转帖)(2006-08-22 12:33:00)

摘要:    在北大上了4节游戏动画设计的课,老师真的是很牛,也很BT,他上课只讲算法,基本上不涉及代码,竟然要我们在第8节课之前交上去一个不少于1500行代码的OpenGL/Direct3D程序,作为大作业。 众所周知,DirectX比较难,不适于初学图形学的人,而且有平台的限制。OpenGL相对简单一点,而且功能强大,是高端的工业标准。我为了能够把更多的经历放在算法上面,而不是MS“诡异”的操作上面,选择了OpenGL. 去书店搜了搜书,D3D的书倒是琳琅满目,但是OpenGL的书却不多,基本上就是那一本“红宝书”。不过翻看红宝书一看,都是console下的列子,毕竟我不想只用GL函数,windows api也是很好的东西,况且用mfc也可以让我偷点懒。 于是放弃了红宝书,决定自己上网找资料进行实践。呵呵,现在看来这个决定还是蛮正确的。 对于windows下的编程,似乎无论是win32 app还是dll,或者mfc,最重要的,也是最难的,都是那个框架。OpenGL也是如此。好在我已经饱经mfc的洗礼,明白如何下手分析框架。不过发现网上的很多程序框架都不是完全一样,不知道这里有没有什么标准?有些代码段去掉之后也仍然没有问题的。这似乎印证了csdn上的一句话:OpenGL出了错,什么都不会做; DirectX出了错,什么都做的出来。^-^ 研究了很多例子之后,我自己总结出了一个最简单、易懂的通用框架,并且给出了重要部分的注释:   /******************************by CRACKER007*******************************/     BOOL CGdlg::InitialPixelFormat()    //此函数被后面的CreateRC调用{ static PIXELFORMATDESCRIPTOR pfd= {  sizeof(PIXELFORMATDESCRIPTOR),   1,   PFD_DRAW_TO_WINDOW|PFD_SUPPORT_OPENGL|PFD_DOUBLEBUFFER,&......

阅读全文(2863) | 评论:0

免费在线电影破解(转帖)(2006-08-22 11:00:00)

摘要:    免费在线电影破解  其实稍懂一点网页制作的朋友都知道破解在线电影的最好方法就是把页面保存下来,然后用网页编辑软件将保存的页面打开,再找出其中的url链接即可   这显然是一个很不错的办法,但也有不管用的时候,有些网站,特别是官方网站,会千方百计地让你无法下载网页或是查看源代码,如在源代码中加以限制,右键的屏蔽,使用java链接,使用控件播放,或是php,asp等动态网页技术等   这时候就要用掉线法来破,破之前最好有个理想的播放器,这里建议使用realone player,它是目前最好的网络流媒体播放器,几乎支持所有的媒体文件格式。   虽然很多人都知道,但还是先在这里先介绍一下破屏蔽右键的方法,可以先点住右键不放,这时会弹出警告框,然后将鼠标移动到确定按钮上点击,然后回到你所选的目标上松开右键,菜单回来了,如果你只是想要获得一个连接,可以简单的使用拖放方法将其拖至flashget或是netants的浮动窗口就,可以再新建下载任务框中得到连接   下面说一下媒体指向文件,这些文件的后缀名通常是.asx .pls .smi .ram   其中.asx文件指向.asf文件,.pls文件一般指向一个php播放列表.smi主要指向rm文件,指向文件常常用来掩盖文件的真实地址,比如你虽然有办法查看原代码,却只能得到一个http://www.***.com/****/****.smi的连接,使用flashget或是netants甚至是streambox下载时,都无法找到其真实地址,下载后发现是一个.smi的文件,用文本编辑器打开,发现虽然有部分代码,但没有你要的连接,所以只能在线播放   其实破解后多数是一个rtsp协议的连接 .asx文件就容易些,一般用streambox下的时候都能找到对应的.asf文件的真实地址。.ram文件一般也可以,如果不行的话,改成.rm,还是不行,就老老实实把下载的.ram文件用文本编辑器打开,不要被它的文件类型所迷惑,其实是个纯文本文件。   掉线法顾名思义其实很简单,下面说一下方法:首先用realone播放你想要的文件,然后打开网络连接属性窗口,把本地连接禁用,或者你用防火墙的禁止访问也可以,只要令其掉线就可以,马上就会弹出一个窗口,里面就是文件的真实地址(有时也不一定,但给出......

阅读全文(3214) | 评论:0

黑客基础(转)(2006-08-22 10:53:00)

摘要:  一,ping      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。下面就来看看它的一些常用的操作。先看看帮助吧,在DOS窗口中键入:ping /? 回车,。所示的帮助画面。在此,我们只掌握一些基本的很有用的参数就可以了(下同)。      -t 表示将不间断向目标IP发送数据包,直到我们强迫其停止。试想,如果你使用100M的宽带接入,而目标IP是56K的小猫,那么要不了多久,目标IP就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。      -l 定义发送数据包的大小,默认为32字节,我们利用它可以最大定义到65500字节。结合上面介绍的-t参数一起使用,会有更好的效果哦。      -n 定义向目标IP发送数据包的次数,默认为3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标IP是否存在,那么就定义为一次吧。      说明一下,如果-t 参数和 -n参数一起使用,ping命令就以放在后面的参数为标准,比如"ping IP -t -n 3",虽然使用了-t参数,但并不是一直ping下去,而是只ping 3次。另外,ping命令不一定非得ping IP,也可以直接ping主机域名,这样就可以得到主机的IP。 下面我们举个例子来说明一下具体用法。      这里time=2表示从发出数据包到接受到返回数据包所用的时间是2秒,从这里可以判断网络连接速度的大小 。从TTL的返回值可以初步判断被ping主机的操作系统,之所以说"初步判断"是因为这个值是可以修改的。这里TTL=32表示操作系统可能是win98。   (小知识:如果TTL=128,则表示目标主机可能是Win2000;如果TTL=250,则目标主机可能是Unix)   至于利用ping命令可以快速查找局域网故障,可以快速搜索最快的QQ服务器,可以对别人进行ping攻击......这些就靠大家自己发挥了。   ......

阅读全文(184) | 评论:0

最全的加密,解密基础教程(转帖)(2006-08-22 10:49:00)

摘要:  最全的加密,解密基础教程  基础教程     第一章 使用规则 1-1  前  言   要学会解密之前 ,您必须了解什么是加密 ,如何加密 ,以及跟踪程序,这样对于解密就再也不是梦想 ,使用的工具只有 DEBUG.COM ,不过现在的程序一般都会检测有无载入 DEBUG ,若有则死机!! 1-2 DEBUG 与文件   学过 DEBUG 的人都知道以下的指令 :     T      --- 单步执行 ,一次执行一个指令     G <Address> --- 执行到 <Address> 就停下来     G      --- 执行完载入的程序 或 "W 用)     L      --- 载入文件(LOAD)     W      --- 写入文件(SAVE)     W      --- 写入文件(SAVE)   大部份解密过程只用到上列指令.....   ==================================================   文件分为.COM 与.EXE ,因为.COM 最大只能有 64K 所以演生出.EXE 文件。但是.EXE又有个文件头 ,记录文件放在那儿所以 DEBUG 无法写回此种文件 ,而产生错误信息。   ※因此EXE文件必须用 PCTOOLS 将指令码找出来改....   第二章 磁盘格式与保护 2-1 磁盘格式   大多数人认为磁盘只有分几道、两面而已 ,其实又细分了更多的东西2D 的磁盘有 39 道 ,2HD 的磁盘有 80 道 ,每一道又分为9个扇区 ,每个扇区又再分 512 个位元组 ,因此要做保护只要和正常道不同即可。   (PS: DOS2.0每道8个扇区 ,DOS3.1以上版本才是9个扇区)   磁道(TRACK) : 磁盘上分成数个同心圆环 ,便称磁道    面(Head) : 软盘分为 0/1 面 ,但硬盘可能超过此数字  扇区(SECTOR) : 磁道上储存数据区域之一      N 值 : 扇区大小 ,正常为2 (N=1 256Bytes ,N=2 512Bytes)          2的N次方乘以256,即为该扇区的大小          2的N次方乘以256,即为该扇区的大小   因此正常的磁道 ID 栏......

阅读全文(243) | 评论:0