皮皮网

【方舟生存进化源码】【调链系统源码分析】【如何修改苹果手机源码】nuclear源码

2024-11-18 23:32:53 来源:cc游戏源码

1.宏病毒特点
2.一个好的程序员至少应该具备哪些条件?
3.vb问题 求各位帮忙
4.嵌入式系统的现状发展
5.宏病毒兼容性好吗

nuclear源码

宏病毒特点

       宏病毒是一种针对微软Word的特定威胁,利用其在广泛使用的编辑软件中的特性进行传播。Word文档和模板由于其广泛的交流性,成为了宏病毒复制和传播的载体。尤其在网络普及和电子邮件普遍使用的背景下,宏病毒的方舟生存进化源码感染率极高,据统计,每个病毒样本中,可能就有个以上是宏病毒,且种类繁多,如WordBasic语言编写的Nuclear病毒就曾造成系统破坏。

       宏病毒的制作和变种过程相对简单,因为它们是以易读的源代码形式存在,如WordBasic。这使得病毒编写者可以轻易地修改宏,只需稍作改动,就可能生成新的、更具破坏性的变种。由于Word的开放性,用户在宏菜单中可以轻易查看到这些宏,这也为恶意修改提供了可能。

       宏病毒的破坏性极强,利用WordBasic语言可以调用系统底层功能,如DOS命令、Windows API或DDE/DLL,这些操作对系统构成直接威胁。Word在指令安全性和完整性方面的检测能力有限,使得宏病毒的破坏指令容易被执行,如Nuclear病毒就是一个例子,它能够破坏操作系统。

       最后,宏病毒打破了传统病毒在单一平台上的局限,如Word和Excel在Windows、Windows NT、OS/2和MACINTOSH等不同平台上运行时,有可能互相感染,显示出跨平台的特性,增加了防范的复杂性。

扩展资料

       宏病毒是一种寄存在文档或模板的宏中的计算机病毒。一旦打开这样的文档,其中的宏就会被执行,于是宏病毒就会被激活,转移到计算机上,并驻留在Normal模板上。从此以后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染病毒的文档,宏病毒又会转移到他的计算机上。

一个好的程序员至少应该具备哪些条件?

       楼上的几位显然误会我的意思了,我并不是说不应当写文档加注释注重团队精神,看看下面的一篇文章,那位三天就写出UNIX的他需要写文档注释和团队精神吗,他用不着。哪个高手没有一点傲气和自信,他之所以敢对用户说:拿到你想要的,然后滚蛋,你已经很幸运了!调链系统源码分析是因为他有这个资本。天才本就不循规蹈矩,那样他就不叫天才了。

       MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder,

       and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。

       Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还

       是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据

       说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前

       身。当然是传说了,但足见他的功力。另一个传说是,年初的时候,DARPA让BBN在

       Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN

       TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封

       喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP

       Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿

       个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你

       怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯

       伯硕士毕业后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把

       Sparc设计出来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同

       事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯

       发言,直切要害,提出漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI

       的主要作者之一。

       John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄

       聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实

       战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。年代初只要能在PC

       上搞个小动画都能让人惊叹一番的如何修改苹果手机源码时候,J哥哥就推出了石破天惊的Castle Wolfstein,

       然后再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。J哥哥的简历上说

       自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说。做J哥哥这样的人

       是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡"

       ,不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听

       取他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程小时以

       上,也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过

       呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还

       是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们

       叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意

       思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别

       人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。

       David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发

       员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然

       后说:“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷

       爷到NT3.5时,管理名开发员,自己还兼做设计和编程,不改coder本色啊。

       D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。 日常交谈fuck不离口。

       他面试秘书时必问:"what do you think of the word 'fuck'?" ,让无数美女刹羽而

       归。终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite

       word"。于是她被录取乐,为D爷爷工作到NT3.5发布。

       Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,

       学数学的外盘的指标源码不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,

       或者学Linux不知道Linus Torvalds一样,不可原谅啊。为了让文章完整,就再罗唆几句

       吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别

       人时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高

       爷爷不爽过,学者本色的说。想想那可是年代初啊,高爷爷写编译器写多了,顺带就搞

       出了个 Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比

       赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到年就code freeze,还附带2^n

       美分奖励等等都是耳熟能详的,偶就不饶舌乐。

       顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可

       谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没

       有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让

       老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那

       完全是高爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我

       们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带

       谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。

       高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他

       捐献了好多作品,都可以在网上看到,比如著名的Mathematical Writing,MMIXWare,

       The Tex Book等,更不用说足以让他流芳百世的Tex乐。

       Ken Thompson,怎样查脚本源码C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche

       老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主

       要作者(另一个是大牛人Rob Pike,

       前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。年还是

       计算机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山

       仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是

       他和DMR怒了,在年到间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不

       知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在年又把Unix用C重写,

       于是C在随后年成就了不知多少豪杰的梦想和光荣。

       Ken爷爷还有段佳话: 装了UNIX的PDP-最早被安装在Bell Lab里供大家日常使用。很

       快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell

       Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX

       代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清

       净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只

       好继续郁闷。谁知道这一郁闷,就郁闷了年,直到Ken爷爷道出个中缘由。原来,代码

       里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器

       编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译

       器。

       (6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系

       统 。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开

       发 Unix的猛人,UTF-8的设计人。他还在美国名嘴David

       Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的

       是,罗伯伯还是年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设

       计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix

       Programming Environment 和 The Practice of Programming 的作者之一。如果初学者

       想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写

       出了Unix下第一个基于位图的窗口系统,并且是著名的blit终端的作者。当然了,罗伯

       伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多

       少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems Software Research is

       Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯

       含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越

       来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的

       革新越来越少。

       就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不

       遗余力地把系统开发推向极致的话,也就是google乐。随便看看google的成果就知道

       了。具有超强容错和负载平衡能力的分布式文件系统GFS

       (现在能够用,台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统

       也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的

       说),更不用说处理海量并行计算的各式google服务了。Rob在System Software

       Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到

       他错了,应为google关心。google网络了大批功成总是试图吸取系统研究的最新成果。

       想必Rob Pike在google很幸福。愿他做出更棒的系统。

       Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M.

       Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前

       身是B,而B是Ken Thompson一手做出来的)。两人年分享图灵奖,是有史以来少数几

       个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,

       所以就成了唯二的乐) 一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛

       不衰近年,至今生机勃勃,DMR此生可以无憾的说。

       D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有

       成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和

       逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成

       形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D

       不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。

       Alef的语法和C相似,但数据类型和执行方式都和C大大不同。说到语言,D爷爷对后来

       人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接

       受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来

       领导自己的团队在年和分别推出了Plan9和Inferno操作系统,又用多少人知道

       呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond

       在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁

       知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次

       采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当

       然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意

       识奠定了C广为流传的基础。

       最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜

       欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就

       是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开

       发部的头,整日忙于开支票。他俩合作年,屡屡创造历史。这段令人神往的佳话,也

       就长留你我心中乐。

       P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。

       据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写

       得最少;但说到编程,Ken爷爷才是当之无愧的老大。

       Edsger Wybe Dijkstra, 对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短

       路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。

       其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,

       无非是戴爷爷在年为了展示新计算机

       ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最

       短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒

       太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙

       着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专

       业期刊都没有。戴爷爷于是推迟发表这个算法。直到年,他才把这个算法发表

       在Numerische Mathematik的创刊号上,权为捧场。:-)

       EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较

       深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。

       戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工

       作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要

       知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情

       愿,但经不住项目负责人Bram和Carel的轮番 “吹捧”:我们知道实时中断让您工作变

       得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,

       接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博

       士论文,顺利戴上博士帽。

       让戴爷爷真正成名立万的还是在X1上开发的Algo,最早的高级语言之一。戴爷爷没日

       没夜地工作了8个月,就搞出了Algo,也因此获得了 年的图灵奖。因为Algo,

       戴爷爷发表了一篇石破天惊的文章:Recursive

       Programming,于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,

       所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。

       而且Algo还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员

       都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科

       学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。

       说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是

       专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴

       爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系

       统,并培养计算机科学家。几年后,THE Multiprogramming

       System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统

       没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小

       组(年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就

       喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作

       来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷

       从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。

       EWD太牛,结果他的故事也太多。先到这里吧。起,他的故事就在美国发生了。

       Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手

       做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。这些作

       品的名字足以为他立传。作为一个程序员,我在这样的大师面前实在无语。生子当

       如Anders的说。李维的<>里已详细讲述了Anders的传奇故事,我就不用费舌了:

       /iexploiter/posts/.aspx

       Artima上有Anders谈C#的系列访谈。MSDN上有一段Anders导游的录像 。有兴趣可以去看

       看牛人的丰采。

vb问题 求各位帮忙

       网上转载的,呵呵,我也不太明白

       '在窗体上加入以下控件

       'image1(0),image1(0) - 黑白棋

       'image2,image3(0)

       'form中的picture为棋盘。因无法上传,请自行领会。

       Option Explicit

       Dim I, J, K, Counter, Firstmoved, Rt, Gen, r, flag As Integer

       Dim Grid(), H(), V(), RL(), LR(), Tb(2), Order() As Integer

       Private Sub Form_Initialize()

       lblHelp.Top = 0

       lblHelp.Left = 0

       Image1(0).Top = -

       Image1(1).Top = -

       lblHelp.Left = -lblHelp.Width

       lblHelp = vbCrLf + vbCrLf + " 游戏帮助" + vbCrLf _

       + vbCrLf + vbCrLf + "●游戏规则:黑方先行,轮流弈子,任一方向先连成五子者胜." _

       + vbCrLf + vbCrLf + vbCrLf + "●操作提示:①可选择[先后]、[难度]和[对手]菜单设置游戏," _

       + vbCrLf + vbCrLf + " 只有按[游戏]->[开始]后才可在棋盘上落子." _

       + vbCrLf + vbCrLf + " ②按[游戏]->[清盘]可重玩并设置游戏." _

       + vbCrLf + vbCrLf + " ③落子后按[动作]菜单下的选择可任意悔棋和恢复." _

       + vbCrLf + vbCrLf + " ④各功能菜单都提供了快捷键(Alt+相应字母)." _

       + vbCrLf + vbCrLf + vbCrLf + "●有什么问题请与本人联系.电子邮件:xwwxyz@sina.com." _

       + vbCrLf + vbCrLf + vbCrLf + "●本页面单击后隐藏."

       End Sub

       Private Sub Form_Resize()

       Me.Height =

       Me.Width =

       End Sub

       Private Sub lblHelp_Click()

       lblHelp.Visible = False

       End Sub

       Private Sub mnuAfter_Click()

       Firstmoved = 0

       mnuAfter.Checked = True

       mnuFirst.Checked = False

       End Sub

       Private Sub Form_Load()

       Dim I As Integer

       For I = 1 To

       Load Image3(I) '加载棋子控件

       Image3(I).Top = (I \ ) * + 5

       Image3(I).Left = (I Mod ) * + 5

       Image3(I).Visible = True

       Next

       Ini

       End Sub

       '游戏初始化

       Sub Ini()

       For I = 0 To

       Image3(I) = Image2

       Image3(I).Enabled = False

       Grid(I) = 0

       V(I) = 0

       H(I) = 0

       LR(I) = 0

       RL(I) = 0

       Next I

       mnuBack.Enabled = False

       Counter = 0

       Gen = 0

       If mnuAfter.Checked = True Then

       Firstmoved = 0

       Else

       Firstmoved = 1

       End If

       mnuStart.Enabled = True

       End Sub

       '一方是否可获胜

       Function LineWin(Piece As Integer) As Integer

       Dim mun As Integer

       LineWin =

       '五子一线

       mun = Piece * 5

       For I = 0 To

       If H(I) = mun Or V(I) = mun Or RL(I) = mun Or LR(I) = mun Then

       LineWin = + Piece

       Exit Function

       End If

       Next I

       '四子一线

       mun = Piece * 4

       For I = 0 To

       If H(I) = mun Then

       For K = 0 To 4

       If Grid(I + K) = 0 Then LineWin = I + K: Exit Function

       Next K

       End If

       If V(I) = mun Then

       For K = 0 To 4

       If Grid(I + K * ) = 0 Then LineWin = I + K * : Exit Function

       Next K

       End If

       If RL(I) = mun Then

       For K = 0 To 4

       If Grid(I + K * ) = 0 Then LineWin = I + K * : Exit Function

       Next K

       End If

       If LR(I) = mun Then

       For K = 0 To 4

       If Grid(I + K * ) = 0 Then LineWin = I + K * : Exit Function

       Next K

       End If

       Next I

       End Function

       '计算机走棋

       Sub ComputerMove()

       Dim ToMove As Integer

       If Counter = 0 Then

       Randomize

       I = Int(Rnd * 7 + 4)

       J = Int(Rnd * 7 + 4)

       If Grid(I * + J) = 0 Then ToMove = I * + J

       Else

       If mnuLower.Checked = True Then ToMove = Defend Else ToMove = Attempt

       End If

       Counter = Counter + 1

       If Firstmoved = 0 Then Image3(ToMove) = Image1(0) Else Image3(ToMove) = Image1(1)

       Grid(ToMove) = 2

       Order(Counter) = ToMove

       LineGen ToMove, 6

       If LineWin(6) = Then

       MsgBox "您输了!"

       Ini

       Exit Sub

       End If

       If Counter = Then

       MsgBox "和棋"

       Ini

       Exit Sub

       End If

       End Sub

       '低级模式

       Function Defend() As Integer

       Rt = LineWin(6)

       If Rt < Then Defend = Rt: Exit Function

       Rt = LineWin(1)

       If Rt < Then Defend = Rt: Exit Function

       '查找落子位置

       Rt = FindBlank

       If Rt < Then Defend = Rt: Exit Function

       End Function

       '悔棋

       Private Sub mnuBack_Click()

       mnuComeback.Enabled = True

       If (Counter + Firstmoved) Mod 2 = 0 Then Rt = -1 Else Rt = -6

       Grid(Order(Counter)) = 0

       Image3(Order(Counter)) = Image2

       LineGen Order(Counter), Rt

       Counter = Counter - 1

       If mnuComputer.Checked = True Then

       Grid(Order(Counter)) = 0

       Image3(Order(Counter)) = Image2

       LineGen Order(Counter), -1

       Counter = Counter - 1

       Else

       flag = 1 - flag

       End If

       r = r + 1

       If Counter = 1 And Firstmoved = 0 And mnuComputer.Checked = True Then mnuBack.Enabled = False

       If Counter = 0 Then mnuBack.Enabled = False

       End Sub

       '恢复棋子

       Private Sub mnuComeback_Click()

       mnuBack.Enabled = True

       Counter = Counter + 1

       If (Counter + Firstmoved) Mod 2 = 0 Then

       Grid(Order(Counter)) = 1

       Image3(Order(Counter)) = Image1(1 - Firstmoved)

       LineGen Order(Counter), 1

       Else

       Grid(Order(Counter)) = 2

       Image3(Order(Counter)) = Image1(Firstmoved)

       LineGen Order(Counter), 6

       End If

       If mnuComputer.Checked = True Then

       Counter = Counter + 1

       Grid(Order(Counter)) = 2

       Image3(Order(Counter)) = Image1(Firstmoved)

       LineGen Order(Counter), 6

       Else

       flag = 1 - flag

       End If

       r = r - 1

       If r = 0 Then mnuComeback.Enabled = False

       End Sub

       Private Sub mnuComputer_Click() '对手

       mnuComputer.Checked = True '电脑

       mnuHuman.Checked = False '棋手

       End Sub

       Private Sub mnuClear_Click() '清盘

       Ini

       mnuFirst.Enabled = True

       mnuAfter.Enabled = True

       mnuLower.Enabled = True

       mnuHigher.Enabled = True

       mnuComputer.Enabled = True

       mnuHuman.Enabled = True

       End Sub

       Private Sub mnuHuman_Click()

       mnuHuman.Checked = True

       mnuComputer.Checked = False

       End Sub

       Private Sub mnuStart_Click() '开始

       lblHelp.Visible = False

       For I = 0 To

       Image3(I).Enabled = True

       Next I

       mnuFirst.Enabled = False

       mnuAfter.Enabled = False

       mnuLower.Enabled = False

       mnuHigher.Enabled = False

       mnuComputer.Enabled = False

       mnuHuman.Enabled = False

       If Firstmoved = 0 And mnuComputer.Checked = True Then ComputerMove

       If Firstmoved = 0 And mnuHuman.Checked = True Then flag = 1 Else flag = 0

       mnuStart.Enabled = False

       End Sub

       '玩家走棋

       Private Sub image3_Click(Index As Integer)

       If Grid(Index) <> 0 Then Exit Sub

       Counter = Counter + 1

       If Firstmoved = 0 Then

       Image3(Index) = Image1(1 - flag)

       Else

       Image3(Index) = Image1(flag)

       End If

       Grid(Index) = 1 + flag

       Order(Counter) = Index

       mnuBack.Enabled = True

       mnuComeback.Enabled = False

       r = 0

       LineGen Index, (1 + flag * 5)

       If LineWin(1 + flag * 5) = + flag * 5 Then

       If flag = 0 Then MsgBox "您赢了!" Else MsgBox "您输了!"

       Ini

       Exit Sub

       End If

       If Counter = Then

       MsgBox "和棋"

       Ini

       Exit Sub

       End If

       If mnuComputer.Checked = True Then ComputerMove Else flag = 1 - flag

       End Sub

       '查找可以落子的空位

       Function FindBlank() As Integer

       Dim wz, fs, lz, RndNum As Integer

       fs = -

       For wz = 0 To

       If Grid(wz) = 0 Then

       Grid(wz) = 2

       LineGen wz, 6

       Rt = Gen

       If Rt > fs Then fs = Rt: lz = wz

       Grid(wz) = 0

       LineGen wz, -6

       End If

       Next wz

       FindBlank = lz

       End Function

       '高级模式

       Function Attempt() As Integer

       Dim wz As Integer

       Rt = LineWin(6)

       If Rt < Then Attempt = Rt: Exit Function

       Rt = LineWin(1)

       If Rt < Then Attempt = Rt: Exit Function

       '查找落子位置

       Rt = linethree(6)

       If Rt < Then Attempt = Rt: Exit Function

       Rt = linethree(1)

       If Rt < Then

       Grid(Tb(0)) = 2

       LineGen Tb(0), 6

       Rt = Gen: wz = Tb(0)

       Grid(Tb(0)) = 0

       LineGen Tb(0), -6

       Grid(Tb(1)) = 2

       LineGen Tb(1), 6

       If Rt < Gen Then Rt = Gen: wz = Tb(1)

       Grid(Tb(1)) = 0

       LineGen Tb(1), -6

       Grid(Tb(2)) = 2

       LineGen Tb(2), 6

       If Rt < Gen Then Rt = Gen: wz = Tb(2)

       Grid(Tb(2)) = 0

       LineGen Tb(2), -6

       Attempt = wz

       Exit Function

       End If

       Rt = FindBlank

       If Rt < Then Attempt = Rt: Exit Function

       End Function

       Private Sub mnuFirst_Click() '先后手

       Firstmoved = 1

       mnuAfter.Checked = False

       mnuFirst.Checked = True

       End Sub

       Private Sub mnuHigher_Click()

       mnuLower.Checked = False

       mnuHigher.Checked = True

       End Sub

       Private Sub mnuLower_Click() '难度

       mnuLower.Checked = True

       mnuHigher.Checked = False

       End Sub

       '局势评估

       Function LineGen(ij, Piece)

       Dim b, e, mun As Integer

       I = ij \

       J = ij Mod

       '横线影响

       b = IIf(J - 4 > 0, J - 4, 0)

       e = IIf(J > , , J)

       For K = b To e

       mun = H(I * + K)

       If mun < 6 Then Gen = Gen + mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen - mun * 2 ^ mun

       H(I * + K) = H(I * + K) + Piece

       mun = H(I * + K)

       If mun < 6 Then Gen = Gen - mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen + mun * 2 ^ mun

       Next K

       '竖线影响

       b = IIf(I - 4 > 0, I - 4, 0)

       e = IIf(I > , , I)

       For K = b To e

       mun = V(K * + J)

       If mun < 6 Then Gen = Gen + mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen - mun * 2 ^ mun

       V(K * + J) = V(K * + J) + Piece

       mun = V(K * + J)

       If mun < 6 Then Gen = Gen - mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen + mun * 2 ^ mun

       Next K

       '撇线影响

       b = IIf(I - 4 > 0, I - 4, 0)

       e = IIf(I > , , I)

       b = IIf(b > J + I - IIf(J + 4 > , , J + 4), b, J + I - IIf(J + 4 > , , J + 4))

       e = IIf(e > J + I - IIf(J > 4, J, 4), J + I - IIf(J > 4, J, 4), e)

       For K = b To e

       mun = RL(K * + I + J - K)

       If mun < 6 Then Gen = Gen + mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen - mun * 2 ^ mun

       RL(K * + I + J - K) = RL(K * + I + J - K) + Piece

       mun = RL(K * + I + J - K)

       If mun < 6 Then Gen = Gen - mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen + mun * 2 ^ mun

       Next K

       '捺线影响

       b = IIf(I - 4 > 0, I - 4, 0)

       e = IIf(I > , , I)

       b = IIf(b > I - J + IIf(J - 4 > 0, J - 4, 0), b, I - J + IIf(J - 4 > 0, J - 4, 0))

       e = IIf(e > I - J + IIf(J > , , J), I - J + IIf(J > , , J), e)

       For K = b To e

       mun = LR(K * - I + J + K)

       If mun < 6 Then Gen = Gen + mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen - mun * 2 ^ mun

       LR(K * - I + J + K) = LR(K * - I + J + K) + Piece

       mun = LR(K * - I + J + K)

       If mun < 6 Then Gen = Gen - mun * 2 ^ mun

       If mun > 5 And mun Mod 6 = 0 Then mun = mun \ 6 - 1: Gen = Gen + mun * 2 ^ mun

       Next K

       End Function

       '是否存在三子一线(可发展成五子联线)

       Function linethree(Piece As Integer) As Integer

       Dim mun As Integer

       linethree =

       '三子一线

       mun = Piece * 3

       For I = 0 To

       If H(I) = mun Then

       If Grid(I) = 0 Then

       If I Mod < Then

       If Grid(I + 5) = 0 Then

       For K = 1 To 4

       If Grid(I + K) = 0 Then

       Tb(0) = I + K

       Tb(1) = I

       Tb(2) = I + 5

       linethree = Tb(0)

       Exit Function

       End If

       Next K

       End If

       End If

       End If

       End If

       If V(I) = mun Then

       If Grid(I) = 0 Then

       If (I \ ) < Then

       If Grid(I + ) = 0 Then

       For K = 1 To 4

       If Grid(I + K * ) = 0 Then

       Tb(0) = I + K *

       Tb(1) = I

       Tb(2) = I +

       linethree = Tb(0)

       Exit Function

       End If

       Next K

       End If

       End If

       End If

       End If

       If RL(I) = mun Then

       If Grid(I) = 0 Then

       If (I \ ) < And I Mod > 4 Then

       If Grid(I + ) = 0 Then

       For K = 1 To 4

       If Grid(I + K * ) = 0 Then

       Tb(0) = I + K *

       Tb(1) = I

       Tb(2) = I +

       linethree = Tb(0)

       Exit Function

       End If

       Next K

       End If

       End If

       End If

       End If

       If LR(I) = mun Then

       If Grid(I) = 0 Then

       If (I \ ) < And I Mod < Then

       If Grid(I + ) = 0 Then

       For K = 1 To 4

       If Grid(I + K * ) = 0 Then

       Tb(0) = I + K *

       Tb(1) = I

       Tb(2) = I +

       linethree = Tb(0)

       Exit Function

       End If

       Next K

       End If

       End If

       End If

       End If

       Next I

       End Function

       Private Sub munHelp_Click() '帮助

       lblHelp.Visible = True

       End Sub

嵌入式系统的现状发展

        随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。美国著名未来学家尼葛洛庞帝年1月访华时预言,4~5年后嵌入式智能(电脑) 工具将是PC和因特网之后最伟大的发明。我国著名嵌入式系统专家沈绪榜院士年月在武汉全国第次微机学术交流会上发表的《计算机的发展与技术》一文中,对未来年以嵌入式芯片为基础的计算机工业进行了科学的阐述和展望。年世界电子产品产值已超过亿美元,年达到亿美元,预计年,销售额将达亿美元。

       è¿›å…¥ä¸–纪年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。在广播电视领域,美国已开始由模拟电视向数字电视转变,欧洲的DVB(数字电视广播)技术已在全球大多数国家推广。数字音频广播(DAB)也已进入商品化试播阶段。而软件、集成电路和新型元器件在产业发展中的作用日益重要。所有上述产品中,都离不开嵌入式系统技术。象前途无可计量的维纳斯计划生产机顶盒,核心技术就是采用位以上芯片级的嵌入式技术。在个人领域中,嵌入式产品将主要是个人商用,作为个人移动的数据处理和通讯软件。由于嵌入式设备具有自然的人机交互界面,GUI屏幕为中心的多媒体界面给人很大的亲和力。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像已取得初步成效。

       ä¸€äº›å…ˆè¿›çš„PDA在显示屏幕上已实现汉字写入、短消息语音发布,日用范围也将日益广阔。对于企业专用解决方案,如物流管理、条码扫描、移动信息采集等,这种小型手持嵌入式系统将发挥巨大的作用。自动控制领域,不仅可以用于ATM机,自动售货机,工业控制等专用设备,和移动通讯设备结合、GPS、娱乐相结合,嵌入式系统同样可以发挥巨大的作用。近期长虹推出的ADSL产品,结合网络,控制,信息,这种智能化,网络化将是家电发展的新趋势。

       ç¡¬ä»¶æ–¹é¢ï¼Œä¸ä»…有各大公司的微处理器芯片,还有用于学习和研发的各种配套开发包。目前低层系统和硬件平台经过若干年的研究,已经相对比较成熟,实现各种功能的芯片应有尽有。而且巨大的市场需求给我们提供了学习研发的资金和技术力量。

       ä»Žè½¯ä»¶æ–¹é¢è®²ï¼Œä¹Ÿæœ‰ç›¸å½“部分的成熟软件系统。国外商品化的嵌入式实时操作系统,已进入我国市场的有WindRiver、Microsoft、QNX和Nuclear等产品。我国自主开发的嵌入式系统软件产品如科银(CoreTek)公司的嵌入式软件开发平台DeltaSystem,中科院推出的Hopen嵌入式操作系统(虽然还不够完善)。同时由于是研究热点,所以我们可以在网上找到各种各样的免费资源,从各大厂商的开发文档,到各种驱动,程序源代码,甚至很多厂商还提供微处理器的样片。这对于我们从事这方面的研发,无疑是个资源宝库。对于软件设计来说,不管是上手还是进一步开发,都相对来说比较容易。这就使得很多生手能够比较快的进入研究状态,利于发挥大家的积极创造性。

       ä»Šå¤©åµŒå…¥å¼ç³»ç»Ÿå¸¦æ¥çš„工业年产值已超过了1万亿美元,年来自美国嵌入式系统大会(Embedded System Conference)的报告指出,未来5年仅基于嵌入式计算机系统的全数字电视产品,就将在美国产生一个每年亿美元的新市场。美国汽车大王福特公司的高级经理也曾宣称,“福特出售的‘计算能力’已超过了IBM”,由此可以想见嵌入式计算机工业的规模和广度。年月在美国加州举行的嵌入式系统大会上,基于RTOS的Embedded Internet成为一个技术新热点。在国内,“维纳斯计划”和“女锅计划”一度闹得沸沸扬扬,机顶盒、信息j家电这两年更成了IT热点,而实际上这些都是嵌入式系统在特定环境下的一个特定应用。据调查,目前国际上已有两百多种嵌入式操作系统,而各种各样的开发工具、应用于嵌入式开发的仪器设备更是不可胜数。在国内,虽然嵌入式应用、开发很广,但该领域却几乎还是空白,只有三两家公司和极少数人员在从事这方面工作。由此可见,嵌入式系统技术发展的空间真是无比广大。 信息时代,数字时代使得嵌入式产品获得了巨大的发展契机,为嵌入式市场展现了美好的前景,同时也对嵌入式生产厂商提出了新的挑战,从中我们可以看出未来嵌入式系统的几大发展趋势:

       1.嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,同时还需要提供强大的硬件开发工具和软件包支持。

       ç›®å‰å¾ˆå¤šåŽ‚商已经充分考虑到这一点,在主推系统的同时,将开发环境也作为重点推广。比如三星在推广Arm7,Arm9芯片的同时还提供开发板和板级支持包(BSP),而WindowCE在主推系统时也提供Embedded VC++作为开发工具,还有Vxworks的Tonado开发环境,DeltaOS的Limda编译环境等等都是这一趋势的典型体现。当然,这也是市场竞争的结果。

       2.网络化、信息化的要求随着因特网技术的成熟、带宽的提高日益提高,使得以往单一功能的设备如电话、手机、冰箱、微波炉等功能不再单一,结构更加复杂。

       è¿™å°±è¦æ±‚芯片设计厂商在芯片上集成更多的功能,为了满足应用功能的升级,设计师们一方面采用更强大的嵌入式处理器如位、位RISC芯片或信号处理器DSP增强处理能力,同时增加功能接口,如USB,扩展总线类型,如CAN BUS,加强对多媒体、图形等的处理,逐步实施片上系统(SOC)的概念。软件方面采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期。如HP

       3.网络互联成为必然趋势。

       æœªæ¥çš„嵌入式设备为了适应网络发展的要求,必然要求硬件上提供各种网络通信接口。传统的单片机对于网络支持不足,而新一代的嵌入式处理器已经开始内嵌网络接口,除了支持TCP/IP协议,还有的支持IEEE、USB、CAN、Bluetooth或IrDA通信接口中的一种或者几种,同时也需要提供相应的通信组网协议软件和物理层驱动软件。软件方面系统系统内核支持网络模块,甚至可以在设备上嵌入Web浏览器,真正实现随时随地用各种设备上网。

       4.精简系统内核、算法,降低功耗和软硬件成本。

       æœªæ¥çš„嵌入式产品是软硬件紧密结合的设备,为了减低功耗和成本,需要设计者尽量精简系统内核,只保留和系统功能紧密相关的软硬件,利用最低的资源实现最适当的功能,这就要求设计者选用最佳的编程模型和不断改进算法,优化编译器性能。因此,既要软件人员有丰富的硬件知识,又需要发展先进嵌入式软件技术,如Java、Web和WAP等。

       5.提供友好的多媒体人机界面

       åµŒå…¥å¼è®¾å¤‡èƒ½ä¸Žç”¨æˆ·äº²å¯†æŽ¥è§¦ï¼Œæœ€é‡è¦çš„因素就是它能提供非常友好的用户界面。图像界面,灵活的控制方式,使得人们感觉嵌入式设备就象是一个熟悉的老朋友。这方面的要求使得嵌入式软件设计者要在图形界面,多媒体技术上痛下苦功。手写文字输入、语音拨号上网、收发电子邮件以及彩色图形、图像都会使使用者获得自由的感受。一些先进的PDA在显示屏幕上已实现汉字写入、短消息语音发布,但一般的嵌入式设备距离这个要求还有很长的路要走。

宏病毒兼容性好吗

       以往病毒是以二进制的计算机机器码形式出现,而宏病毒则是以人们容易阅读的源代码宏语言WordBasic形式出现,所以编写和修改宏病毒比以往病毒更容易。那么,宏病毒兼容性好吗?

       小编了解到,宏病毒兼容性相对来说还是很好的,不过,宏病毒对于xp系统兼容性很强,对于w7和w8就兼容的不好的。

       另外,宏病毒还有以下特点:

       (1)传播极快

       Word宏病毒通过.DOC文档及.DOT模板进行自我复制及传播,而计算机文档是交流最广的文件类型。人们大多重视保护自己计算机的引导部分和可执行文件不被病毒感染,而对外来的文档文件基本是直接浏览使用,这给Word宏病毒传播带来很多便利。特别是Internet网络的普及,Email的大量应用更为Word宏病毒传播铺平道路。根据国外较保守的统计,宏病毒的感染率高达%以上,即在现实生活中每发现个病毒,其中就有多个宏病毒,而国际上普通病毒种类已达多种。

       (2)制作、变种方便

       Word病毒都是用WordBasic语言所写成,大部分Word病毒宏并没有使用Word提供的Execute-Only处理函数处理,它们仍处于可打开阅读修改状态。所有用户在Word工具的宏菜单中很方便就可以看到这种宏病毒的全部面目。当然会有“不法之徒”利用掌握的Basic语句简单知识把其中病毒激活条件和破坏条件加以改变,立即就生产出了一种新的宏病毒,甚至比原病毒的危害更加严重。

       (3)破坏可能性极大

       鉴于宏病毒用WordBasic语言编写,WordBasic语言提供了许多系统级底层调用,如直接使用DOS系统命令,调用WindowsAPI,调用DDE或DLL等。这些操作均可能对系统直接构成威胁,而Word在指令安全性、完整性上检测能力很弱,破坏系统的指令很容易被执行。宏病毒Nuclear就是破坏操作系统的典型一例。

       (4)多平台交叉感染

       宏病毒冲破了以往病毒在单一平台上传播的局限,当WORD、EXCEL这类著名应用软件在不同平台(如Windows、Windo_wsNT、OS/2和MACINTOSH等)上运行时,会被宏病毒交叉感染。

       以上就是宏病毒的相关介绍,希望能帮助大家了解宏病毒。如果小伙伴们想要远离宏病毒,最好还要了解宏病毒中毒表现和应对措施,这部分网络病毒小知识,倍领安全网上有介绍哦,欢迎大家点击查阅。