计算机编程语言_第1页
计算机编程语言_第2页
计算机编程语言_第3页
计算机编程语言_第4页
计算机编程语言_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机编程语言最常见的两种可能世嘉主机游戏:快打(VirtuaFighter),也叫VR战士;计算机编程语言:数据库软件VisualFoxpro;也可能是法国著名服装公司:VFCorporation(威富公司),旗下由著名户外运动品牌-TheNorthFace和牛仔品牌-Lee。其中一个vf是推出的数据库软件visualfoxpro的简称,又叫VFP。是数据库管理系统,集成编程语言,是开发小型数据库的前端工具0VisualFoxPro中的Visual的意思是“可视化”,该技术使得在Windows环境下设计的应用程序达到即看即得的效果。VisualFoxPro面向对象的开发环境使得无论是组织信息、运行、查询、创建集成的关系型数据库系统,还是编写数据库管理应用程序,都变得十分轻松。作为市场上最灵活和功能最强大的数据库管理系统‘VisualFoxPro拥有悠久而辉煌的发展历史。它初创时是FoxSoftware公司的FoxBASE产品,“Fox”(这是国际编程界对它的称呼)一种可靠、便捷和高效的程序员用的数据库产品而名闻遐迩。世界上没有一种产品像VisualFoxPro那样运行,它是独一无二的!许多人在享受了VisualFoxPro的服务后却说不清它是什么。就让我们沿着它的发展轨迹了解了解它吧!这会使您能对它有更深刻的认识。FoxPro隶属于一种名为Xbase的DBMS类别。Xbase这个术语很常见,他表示诸如FoxPro、dBASEIIIPLUS、dBASEIV、FoxBASE+以及ARAGO的语言。Xbase最初起源于一个大型机使用的DBMS,这个DBMS叫做JPLDIS(喷射推动实验室数据库管理和信息检索系统)。这个DBMS是由美国人JebLong在1972年开发成功的。到目前为止全世界的开发者和程序员已经编写了几千万行的Xbase代码。追溯到80年代末,FoxBASE是dBase的克隆系统。只要是dBASEIII能做的工作,FoxBASE就能做得更好更快。FoxBASE虽然拥有某些全新的特征,但它并没有真正重大的技术突破,只是为了运行得更快更好,而更重要的是它与dBASEIII兼容。FoxPro1.0首先背离了与兼容的原则。它开始在图形用户界面的设计和软件开发方法中采用一些新的思路,从而使它领先于当时年前景已不妙的dBASEIV。从2.0开始,FoxPro才真正形成了它自己的特色。当FoxPro2.0推出时,它包含了若干项关键技术,给PC数据库开发市场带来了革命性的变化。这些技术是:加入了Rushmore技术,它能从事许多难以想象的复杂工作。突然之间,带有以百万计数的记录的表格在PC数据库系统中不仅成为可能,而且可以非常容易地加以实现,无需转用其他比较昂贵的技术;Rushmore最重要的优点在于它是完全自动化的,不用用户花费精力和时间。因为有了Rushmore技术,再加上Fox天生的快速,即使在今天VisualFoxPro仍然是最快的桌面数据库引擎。SQL语句是FoxPro2.0推出的另一项具有革命性意义的关键技术°Fox的开发人员首次用单一语句取代了整个程序过程,并且这种支持是内含于Fox数据引擎之中的。SQL语言曾经并且现在仍然是强大的数据语言。FoxPro2.0还推出了某种所见即所得的开发报表和屏幕的工具。FoxPro2.0确实具备了我们今天的VisualFoxPro拥有的一些出色的功能。GUI设计服务、SQL和极快的数据访问,是它明显的特征。FoxPro2.5有forDOS、forWindows版,不过那个Windows版只是具有看上去像“Windows”的DOS应用程序的外观。特别是那个DOS下的版本绝对是经典之作,观察身边是不是还有很多这样的系统在运行着?当时有人这样评价:这个软件已经无法再快了,除非硬件升级……直到1995年春天VisualFoxPro推出时,才出现了FoxPro的又一次重大改进(这时Microsoft已经收购了FoxSoftware公司)。VisualFoxPro3.0增加了一些人们企盼已久的特性,使PC数据库开发界大为震惊。我们可以看到:VisualFoxPro与FoxPro是由很大差别的,不要再把VisualFoxPro成为FoxPro了。这些特性是:数据库容器(DatabaseContainer),也叫DBC,它增加了开发人员多年盼望的对存储过程的支持、与表格相关联的数据规则和一系列的附加数据功能。远程数据的无缝连接。谈到连接远程数据的处理,大家往往会想到RDO、ADO、BDE等处理数据引擎,那么VisualFoxPro利用什么实现远程数据的无缝连接?VisualFoxPro本身的数据处理引擎,这和其他任何开发工具都是不同的!VisualFoxPro数据处理引擎通过ODBC驱动程序与远程数据库服务器“通话”,远程数据库服务器的ODBC驱动程序能将VisualFoxPro数据转化成可由他们解释的数据;相反,VisualFoxPro的ODBC驱动程序也能将远程数据转化成可由VisualFoxPro数据引擎处理的数据。可见,只要远程数据库有ODBC驱动程序,就可以用VisualFoxPro最为客户端软件。常见的SQLServer、Oracle、Access等数据库都提供ODBC驱动程序。在VisualFoxPro中实际操作远程数据有两种方法,远程视图和SPT技术。视图(View)是可更新的SQL光标,增加了一整套的数据访问方法,用于数据处理、GUI显示和报表制作。它支持两种类型的视图,即本地视图和远程视图。本地视图是基于VisualFoxPro表格的视图,远程视图是基于任何ODBC数据源的视图。另外为了使VisualFoxPro成为完整的C/S开发环境,除视图之外VisualFoxPro还支持SPT(SQLPassThrough)技术来完成视图无法完成的工作,比如数据库服务器的用户管理、存储过程调用等oView与SPT技术的产生后,VisualFoxPro就成为访问远程数据的主要工具。从总体来看,创建整个企业范围内的应用程序和使用存储在远程数据源中的数据,几乎与使用VisualFoxPro表格本身一样容易,处理在数据存取时增加了一些命令、函数,数据处理与普通的VisualFoxPro编程没有任何区别。再次指出:RemoteView与SPT技术是由VisualFoxPro数据处理引擎直接支持的,这与在VB、VC++中的外部数据访问技术不同(他们使用组件,如:DAO、RDO、ADO……),所以用VisualFoxPro访问远程数据的效率很高,并能把远程数据与本地数据完美的融合在一起,最大程度地提高开发效率和程序运行效率。完全支持面向对象技术(OOP)。充分而健壮的实现了面向对象的处理方式大大改善了软件开发条件。健壮的对象模型和创建你自己的类及子类的所用的功能,形成了一种全新的软件开发手段。VisualFoxPro5.0是3.0的升级版本,它是一个32位的系统。具备了使用和创建COM服务器的功能,并开始支持在Internet上发布VisualFoxPro。从这个版本开始,VisualFoxPro进入了Visualstudio家族,并且VisualFoxPro将不再升级的谣言也是在这个时期出现。在VisualFoxPro6.0出现之前,微软计划推出DNA,演化到今天就是.NET,并承诺把VisualFoxPro发展成健壮的中间层工具,所以这以后VisualFoxPro的变化初级用户就不太容易感觉了。VisualFoxPro6.0也没有根本上的变化,不过有些变化还是相当明显的。Access和Assign这两种方法在控制放入你的对象中的数据方面很有创意。运用新的ComponentGallery(组件库)和FoundationClasses(基础类),你能很容易地转向创建面向对象的应用程序的工作。对COM支持的更好,在ServerPack3后我们可以用VisualFoxPro创建多线程的COM组件。VisualFoxPro7是Fox第一个可视化版本 VisualFoxPro3以后的最具有革命意义的一次产品升级换代。关于它的特性,稍候本文会有专门段落讲解。VisualFoxPro的语言是由Xbase、SQL、OOP构成的。我不知道这样分解是否合理,我只是从FoxPro的发展历史得出以上结论的。其实以上三者在VisualFoxPro完美的融合在一起了,已经与VisualFoxPro血脉相连、不可分割,很多语句、函数很难区分它属于哪个门类(也没必要)。再者Xbase这一叫法也不十分妥当,这样容易让人误会,好像VisualFoxPro的语言是没有发展的“死语言”、是十几年前的“老古董”,其实在FoxPro每一次升级中(现在已是VisualFoxPro7)都会对这部分语言进行修订、增补。我看还是这样:VisualFoxPro语言就叫它:“VisualFoxPro语言”,它既不同于任何以往的Xbase(最多有历史渊源),也不同于其它的编程语言。这就象Delphi那样,是ObjectPascal语言,不是以前的Pascal;VB就是VB,不是以前的Basico从Fox进入可视化的时代后,对COM技术的支持一直是VisualFoxPro在过去、现在、将来不断改进的地方。面向对象程序设计(OOP)的最大的好处就在于代码的重复使用。然而,OOP只是一种解决代码重复使用的一种优秀的方案(solution)o单纯利用OOP技术不仅要求所有对象都必须用一种语言完成,并且你还需要得到原程序代码嵌入应用程序(就像我们在VisualFoxPro开发使用Class那样)。如果对象是有你或你的公司完成的这些可能不是什么问题,但如果对象是由其他人或其他公司写的这就是问题了……再者为了节省资源我们常希望把一对象放在远程的计算机上供许多应用程序使用,怎样简单、安全完成这个任务呢?看来,单有OOP是不行的!于是微软提出了ComponentObjectModel(COM)技术,有了它我们就不需要把对象源程序嵌入我们的应用程序中,就可以使用其他语言开发的对象,就可以分布的使用对象了。COM技术提供四种不同的特性,VisualFoxPro支持所有的COM特性。ActiveXdocuments允许用户在一个应用程序中编辑另一个应用程序的document。我们把Word文档嵌入或链接到VisualFoxPro中,就可以不离开VisualFoxPro编辑Word文档了。ActiveXcontrols为开发人员提供了增加的系统功能的方法,典型的应用就是各类ActiveX控件的使用来加强用户界面。这里要说明的是VisualFoxPro不支持(7.0也不支持)“集装箱式的”ActiveX控件,比如Coolbar控件。Automation允许用户在一个应用程序中操纵另外一个应用程序或组件,典型的应用就是VisualFoxPro与Office的OLE-Automation应用。RemoteAutomation或者称DistributedCOM(DCOM)与Automation技术差不多,只是它支持组件的分布,这就是微软的分布式应用战略。VisualFoxPro不支持Activecontrols(ActiveX)的开发,但支持servercomponents的开发,也就是在Automation>RemoteAutomation中使用的组件都可以用VisualFoxPro来开发。VisualFoxPro的这种能力是从5.0开始具有的,到了6.0的SP3已经可以开发出多线程的组件了,这些在上文已经有过论述。以后的VisualFoxPro版本一定会对Automation,特别是RemoteAutomation有更好的支持,无论是开发servercomponents,还是由VisualFoxPro充当客户程序。综上所述,VisualFoxPro是创建关键任务的、企业范围的、面向对象的单层次、双层次、多层次应用程序的重要开发工具,这些应用程序可以在本地或全球范围内进行配置。VisualFoxPro已经过时了吗恕我直言,这样的问题我真的听腻了。这个问题我听了好几年了。从谣言出现到今天VisualFoxPro的版本已经生了两次变化,就是VisualFoxPro6.0与2001年春天推出的VisualFoxPro7.0。根据微软的官方消息,VisualFoxPro8(可能是这个名称吧)已经在研发之中了。我不敢保证是否会有VisualFoxPro9.0(这就像我不敢保证微软是否在那时还存在一样)。可以这样认为,只要不出意外情况(比如微软倒闭、业界发生了重大的变革等),Fox就会平稳地发展!在国外,一个程序员、一家公司把他们使用的开发工具视作一项投资,作为VisualFoxPro的开发厂商微软公司就必须保护客户的投资权益,这是很基本的商业原则,微软绝对不敢随意淘汰有着50万用户的Fox,除非永远不想赚这50万用户的钱了。为什么会有VisualFoxPro要淘汰的传闻呢,我不是很清楚。但这两年微软对VisualFoxPro的不宣传态度却是为这股谣言起到了推波助澜的作用。另外VisualFoxPro确实是一个容易引起误会的产品,初级用户很容易对它产生“不怎么样的”评判,于是加上那谣言就产生了“VisualFoxPro就真的要淘汰了”的幻觉了。为什么说VisualFoxPro是容易引起误会的产品呢?我总结以下几点原因:面向对象与面向过程之争我们说VisualFoxPro是面向对象化的语言,是有根据的。面向对象化的语言必须具备四个特性:抽象(Abstraction)、封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)。对照一下VisualFoxPro,是不是支持这四大特性!当然,VisualFoxPro与C++和ObjectPascal一样都是历史悠久的语言,所以语言中有很多面向过程的语素。我知道很多学校在教学中,只是教导学生们使用VisualFoxPro的面向过程的语言特色,而忽视了面向对象的教学,同样的问题也存在于广大的VisualFoxPro程序员中。我们必须明白:不能因为我们没有使用VisualFoxPro面向对象的强大功能,而说VisualFoxPro不是面向对象的语言,这就像不能因为天下雨、没有出太阳,而说太阳被天狗吃掉了——多么的幼稚可笑!我们知道VisualFoxPro对数据的操作沿用了多年来的面向过程的做法,这与现在流行的开发工具有很大的不同。我觉得,微软这样做是有它的道理的:第一,面向过程的数据处理,更能发挥XBase语言体系的灵活与随意的特色。这一点,你用过其他的数据库开发工具,然后再用用VisualFoxPro就明白了。第二,不直接提供面向对象的数据处理组件,不代表不允许用户封装自己的数据处理组件。很多优秀的Fox程序员,都会自己封装专门数据处理组件,这才是VisualFoxPro编程的高尚境界!面向记录与面向集合之争根据笔者的浅薄认知,关系型数据库处理可以分为面向记录操作和面向集合操作。各种开发工具支持的客户端光标体系就是面向记录操作的,它们支持记录之间的绝对定位,更明白地说就是可以在记录之间导航,诸如:SKIP、GOTOP之类的语句。VisualFoxPro无疑是此道的绝对高手,20年的语言发展,聚集了大量面向记录的语言要素。这是因为这样,我们才会反复强调:VisualFoxPro的Cursor体系灵活、强大!各类大型数据库,如Oracle、SQLServer是面向集合处理的代表,看看正统的SQL语言,绝对没有数据导航之说,数据记录之间是平等的,一切都要讲关系、摆条件!随着技术的发展,人们开始注意到,不能分割这两种对数据的操作方式,于是大型数据库支持了游标语素,Fox也支持符合规范的SQL语言。产品定位导致VisualFoxPro变化不易为人们感觉。微软要把VisualFoxPro作为三层构架(或是多层构架)的中间层开发工具。什么是三层构架呢?第一层是用户界面:它包含了用户界面,让使用者输入,输出,查询等工作;第三层是资料层:它就是用来放资料的地方,一般是指后端数据库,主要有包括Oracle、SQLServer等,它主要是提供一个很大的地方,来有规则的存放数据;第二层是商务逻辑层(中间层):有人要说了:存取资料,直接从第一层跳到第二层可不可以?当然可以,没有人规定不能走捷径,而且从数据库直接抓资料,既快又好,那为什么搞出个第二层呢?商务规则是经常变化的,比如上班从8点改为10点,那电脑怎那么知道老板因为不景气少让大家上二个小时班呢?它一定无法知道,你必须告诉它,这时问题就来了,如果你有很多部电脑,例如:100台,你就得一部部换新程序。如果这是一个挂在Internet上的网络程序,难道总让用户download新程序不成?更重要的是,在大量客户存在的环境里,传统的两层构架根本没有能力承担巨大的工作压力,必须通过某种中间系统实现压力平衡,这就是中间层的另一妙用!中间层是没有图形界面设计的代码编写,并且是OOP方式的代码编写,不仅要熟悉后台数据库的特性,还要考虑前台界面工具的特性,最重要的是商务逻辑的构架,同时还要求懂得IIS、MTS(COM+)、NT的安全设置等复杂枯燥的东西。有趣的是,近年来VisualFoxPro的各种改进,更多的是在这些方面下功夫,到了最新版本的VisualFoxPro7更是在此方面增加了若干特性,下面就让我用四个问题来说明VisualFoxPro在开发中间层方面的贡献:问题一:VisualFoxPro能开发出稳定、有效率的Server程序吗?能,在1999年发布的VisualFoxProSP3中微软赋予了VisualFoxPro开发多线程进程的内组件的能力,并增加了新的运行时刻库VFPnT.DLL(n代表版本号),支持其运行,在这个运行库中,删除了大量老式的和界面控制元素,使得它更小巧。但是由于VisualFoxPro6本身不是很稳定(加打SP4或SP5才有所改善),所以这个很棒的功能在VisualFoxPro6下并不能充分发挥,直到VisualFoxPro7出现才使它的显示出英雄本色!问题二:分布式的事务、动态负载平衡怎么实现?VisualFoxPro7对COM+有很好的支持,借由COM+就可以解决这两个问题了!问题三:作为Server程序,客户程序怎样与Server交换数据集合?这是VisualFoxPro6开发的Server程序的致命弱点,我们知道VisualFoxPro是用来处理数据的,但不能与外界自由交换数据集合会大大降低开发、使用以及程序运行效率!在VisualFoxPro7里我们XML就可以快速、轻易的传递大型数据集合,真正做到数据集的来去自由。现在回想VisualFoxPro6中我们用的那种“循环+属性”的做法,真有天上与人间的感受!问题四:能不能让VisualFoxPro开发的Server任由客户使用,叫干什么就干什么?可以的,在VisualFoxPro7里提供了一个全新的函数:ExecScript()。有了它,就可以一次执行多条客户端送来的符合VisualFoxPro规范的语句:你可以定义变量、做查询、更新数据、修改表结构……微软确实实践着让VisualFoxPro在中间层运行的承诺。但遗憾的是:由于国内用户的水平、国内软件应用的领域,对大多数FoxFans无法感受VisualFoxPro日新月异的变化 对他们来说,VisualFoxPro确实“没有改变”!VisualFoxPro只能局限于桌面应用程序的开发吗?技术在进步,软件技术的应用不断在拓宽,Internet已经是众多开发工具竞相支持的应用领域。VisualFoxPro从版本5开始不断扩充对Internet的支持,到最新的VisualFoxPro7更是增加了对WebService的支持。我们可以把VisualFoxPro对Internet的支持分为三大部分:第一,简单的HTML的转换。VisualFoxPro自带的“Web发布”就是这类型的工具,利用HTML和DHTML的模版,支持VisualFoxPro数据的Web化,这是一种全静态的Web支持。第二,适合于企业内部使用的ActiveDocument技术。是不是希望快速、简单的把VisualFoxPro应用程序转变为Web应用程序,这个ActiveDocument技术就是最佳的选择。它支持App程序运行在IE中,它的缺点是:在客户端必须安装VisualFoxPro的运行库、客户端与数据库间依然是紧密的有状态的关系,属于F/S构架一一只是界面能够运行在IE之中了。它的开发快速以及它依然基于传统构架,决定了这个技术只能运行在企业内部,一般不能在广域网络中发布。这技术是VisualFoxPro6提出的,当时在Tool菜单里还有一个专门的菜单项。到了而今的VisualFoxPro7,这个菜单项已经取消了,但并不是说VisualFoxPro7不支持ActiveDocument,只是这种并不出色的技术没有必要再放在醒目的位置了。第三,基于COM的Web应用。VisualFoxPro真正能被用于Web开发,就是通过COM支持的。这里您要有个认识,作为数据库开发工具,VisualFoxPro不是FronPage这样的用于开发Web界面的工具(也许未来的VisualFoxPro会支持Web界面的开发)。VisualFoxPro完全是作为Server运行在网站的后台,为各种应用提供服务。使用VisualFoxPro编写的COM组件能够被IIS支持,压在后台进行各种运作——这就是真正意义上的VisualFoxPro的Web应用,也是典型的多层构架的中间层!这个阶段,VisualFoxPro对Web的支持有可以划分为三个层次:FoxISAPI。这是最先登场的技术,当年ASP技术还没有出现的时候,我们在IIS里就可以通过ISAPI技术实现动态网页开发。WebServerASP技术出现了,我们知道ASP技术的一大特色就是支持服务器端的组件的应用。用VisualFoxPro的编写的COM组件就能运行在IIS里,供ASP调用。WebService这是VisualFoxPro7的新特性,也是当前最热门的技术。它与WebService的最大不同就是:WebServer组件只能通过ASP程序调用,而WebService可以供任何系统在全球范围调用,无论客户端的硬件平台、软件平台,只要它支持SOAP、支持XML就可以了。更夸张一点说:只要能上网,就可以享用WebService提供的服务!有人也许会问:我可以用VB、VC++建立对象组件时,为何我要用VisualFoxPro来建立相同的组件?微软对这一问题有专门的评论,大意为:快、重复使用性、跨语言重复使用性。“快"是指用VisualFoxPro开发的组件撷取、处理资料都极为迅速,并且VisualFoxPro能够非常迅速的建立字符串。到底有多快,我想数据处理、存取的速度大家平时都领教过了,字符串生成速度我这里有个数据不妨一看,这是台湾的一位高手做的试验一将1M的数据写入文本中,结果VC++6.0程序用了3.5秒、VB6.0程序用了11秒、Java1.1.5用了24秒、VisualFoxPro6.0用了7秒;“重复使用性”是指VisualFoxPro具备OOP的功能;“跨语言重复使用性”是指VisualFoxPro编写的对象编译以后成为COM、COM+对象组件,这样就可以在其他语言中使用它了。不要以为VisualFoxPro是“低端产品",无论从数据库(DBFBase)品质还是开发环境评价VisualFoxPro,它都是一个“高端工具”。许多人认为VisualFoxPro只能用来开发单用户系统或是文件服务器构架的小型网络系统——这是谬误——这种无知的言论在许多讲C/S、三层构架的书中都有(特别是一些VB、PB、Delphi的数据库编程书)。我可以很负责任的告诉大家完全可以用VisualFoxPro开发C/S结构的系统。这里说的C/S构架绝对是正宗的,不是用什么F/S构架在糊弄大家。在C/S构架中我们常常选择VisualFoxPro作为客户端开发工具,以Oracle、SQLServer等网络数据库压在后台,使用VisualFoxPro内置的RemoteView和SPT技术,这样就可以完美地解决问题。这里不能详细展开,只特别介绍VisualFoxPro的本地引擎在开发中的作用。VisualFoxPro的本地引擎特别强大(上文我们说过处理百万条记录不费吹灰之力)我们在设计系统时可以十分简单的将远程数据与本地数据结合,很简单、很有效地控制网络数据流量、提高系统工作效率(我看过不少VB、Delphi、PB的书,他们很少在怎样控制网络数据流量、提高系统工作效率论述,不知是不屑一顾,还是其他什么原因)。我认为VisualFoxPro的本地引擎在C/S构架下起码有三项伟大的用途。其一:非经常变动数据的本地存储。我国的邮政编码与地区的关系是相对稳定的数据,而且数据量也不是太小,我想总有上千个记录(我没仔细考察过具体情况),我们把这些信息存储在客户端的计算机中,就可以在使用邮政编码及其相关信息时从本地得到数据,这样能使高系统效率同时节省网络资源(这是C/S开发的重要原则),只在邮政编码发生变化时在服务器上统一更新,下载更新客户机上的数据。如果用别的软件实现同样的功能,绝对比VisualFoxPro麻烦而且效果绝对不及VisualFoxPro,这因为VisualFoxPro的数据引擎直接支持远程数据读取,能很好的融合本地数据与远程数据;其二:离线数据包。单位里总有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论