别说我发错板块了,我真不知道发那里。。
这篇文章是我同学写的,交上去获得了市里面的一等奖,然后被一群老不死的教授进行论文答辩...........然后突然发现,那群老不死的自称教授的人屁都不懂.......
下面进入正题:
八年级七班 邱天 摘要:不少程序初学者都选择了使用易语言作为自己的第一门程序语言。易语言是由吴涛先生开发的一门中文编程语言,具有学习简单,容易上手,中文语法等特点,它编写速度快,效率高,创作难度低。但是,易语言也是有缺点的。它过于依赖于支持库,这就导致了用易语言写出的程序只能在Windows和Linux(1)系统下运行。这也就注定了它不能用来编写操作系统。在编写PANDAOS(2)时考虑过易语言,但最终放弃)易语言编写的程序被杀毒软件误报为病毒,甚至一个不包含任何代码的空白程序都会被一些杀毒软件识别为病毒。并非易语言生成出来的程序容易误报,VB单独生成的空窗口也报毒,C++也同样出现误报现象。不过,“既学之,则安之”,既然学了,那就用它干一场大事吧!本文将从一些Windows程序在易语言上的实现方法讲起,对易语言做一个利与弊的探讨,并与这些功能在C语言上的实现方法进行比较。(本文部分地方有注释,注释内容在本文结尾) 关键词:API;动态链接库;进程;中文编程 一.易语言的一些高级应用 1.易语言能够实现进程操作码? 进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动。 在易语言上,可以实现对进程的操作。下面,我将对结束进程进行讲解。 我是用了两个API来实现结束进程的。分别是OpenProcess和TerminateProcess 。首先说说OpenProcess。它可以打开一个已存在的进程,并返回该进程的句柄。 它有3个参数,分别是进程对象,继承句柄,进程标识符。进程对象和继承句柄分别填2097151和0。而进程标识符则是我们要打开的进程的ID。(这三个参数都是整数型)接下来说说TerminateProcess。它用于函数终止指定进程及其所有线程。参数有两个,分别是要结束的进程的句柄和该进程的一个推出代码。第一个参数填OpenProcess的返回值,第二个不用管,直接填0就可以了。 源码实例: TerminateProcess (OpenProcess (2097151, 0, 进程ID), 0) 2. 易语言可以弹出信息框吗? 信息框就像是电脑的嘴巴。以文字的方式与用户交谈。在C语言中,需要调用Windows的信息框API。那么易语言能否弹出信息框?答案当然是肯定的。一门程序语言连信息框都不能有,还能叫程序语言吗?易语言省去了传统弹出信息框繁琐的调用API过程。直接用易语言自带的函数“信息框”就可以了。该函数有三个参数,分别是提示信息,按钮,窗口标题。 源码实例: 信息框 (“Hello World From 易语言”,#信息图标,“Hello,world!”) 3.易语言可以调用API吗? 如果要开发更灵活,实用,更具效率的应用程序,必然要涉及到直接实用API。对于比较复杂和特殊的功能来说,使用库类和控件是非常难以实现的,这时就需要使用API来实现。 易语言当然可以使用API。不过你需要先定义它。 二.组件应用实例 1.拖放对象组件 我们经常看见一些软件中需要打开一些文件时,直接把文件拖进去就可以打开了。易语言也可以实现这样的功能。这就是拖放对象组件。你可以在扩展组件1里找到它。在它的属性栏中,有“接收文本”,“接收超文本”,“接收URL”,“接收文件”等选项。我们一般用到的就是“接收文件”。你需要把它设置为“真”。 并且你需要注册这个控件。完成以上操作后,这个组件才能生效,你还需要在事件栏里设置事件。事件处理子程序中会有“接收到的文件路径”这一参数。 代码实例: .子程序 _拖放对象1_得到文件 .参数 接收到的文件路径, 文本型 信息框 ("接收到文件!路径为"&接收到的文件路径, #信息图标,"接收到文件!" ) 三.我制作的软件示例及分析 1.LOGO对象组件的应用实例:“乐龟” 说起LOGO语言,大家可能比较陌生。但是说“小海龟”的话,大家可能就知道了。 LOGO语言是一种早期的编程语言,也是一种与自然语言非常接近的编程语言,它通过画图的方式来学习编程。 它是由一名叫佩伯特的心理学家在一个假日中外出散步时,偶然间看到一个像海龟的机械装置触发灵感,完成了LOGO语言的设计。而“乐龟”就是用易语言的LOGO组件而编写的程序。它把传统LOGO语言繁琐的代码省去,改用键盘来操作“小海龟”,而“乐龟”就负责把代码记录下来。 首先我们从控制“小海龟”讲起吧。刚才提到过,“乐龟”使用键盘操作的,而且采用了游戏中的控制方法。那么,它是如何知道用户按了键的呢?答案是事件处理子程序里面的“按下某键”事件,它就是乐龟获取键盘输入的事件。 这个子程序里有两个变量,分别是键代码和功能键状态,我们只用键代码这个变量。 键代码是指被按下的键的代码。这样,我们就知道用户按下的是哪个键了。 然后是LOGO对象部分的代码。 它这个对象里有前进,后退,落笔,抬笔等LOGO命令。前进和后退需要提供参数(步数) 代码区其实就是一个编辑框。当执行命令时在代码框里添加代码就行了。 2.类标识符的妙用及拖放对象组件应用实例:隐身斗篷 类标识符是与某一个类对象相联系的唯一标记。一个准备创建多个对象的类对象应将其类标识符注册到系统注册数据库的任务表中,以使客户能够定位并装载与该对象有关的可执行代码。 我们有一些隐私的文件不想让外人看见,那么,类标识符可以帮你的忙。试试看,在一个文件夹名字后面加上.{20D04FE0-3AEA-1069-A2D8-08002B30309D}试试看? 没错,这个文件夹变成我的电脑了。这就是类标识符的神奇。 如果好好利用它的特性,我们就可以对我们的隐私文件夹进行一个伪装。隐身斗篷由此诞生。它在选择文件夹时采用了上面讲过的“拖放对象组件”。而如何实现伪装的呢?它使用了“文件更名”这个命令。改过的新目录名其实就是原来的目录名加上类标识符。 3.文本操作和写出文件的实例:易语音 想让你的程序说话吗?易语言可以帮你。但是它目前只能说英语。它说话是靠生成一个VBS(3)脚本来说话。而且易语音只是一个子程序,不是一个单独的程序。 源代码: .子程序 易语音, , 公开, 让易程序说话 .参数 要说的话, 文本型 .局部变量 脚本, 文本型, 静态 脚本 = “CreateObject(” + #引号 + “SAPI.SpVoice” + #引号 + “).Speak ” + #引号 + 要说的话 + #引号 写到文件 (取运行目录 () + “\speak.vbs”, 到字节集 (脚本)) 延时 (1000) 执行 (#打开文件, 取运行目录 () + “\speak.vbs”, , , ) 大型软件项目的实施一般是分工协作开发,为了支持这一点,易语言提供了模块化开发支持。易语言中的模块称为易模块。通过使用易模块,用户可以将常用的代码封装起来重复使用到其它程序,或提供给第三方使用,或用作开发大型软件项目中的某个部分,然后在软件项目的封装阶段将所有这些模块组织编译成为一个完整程序,易模块的扩展名为.ec。同时易语言支持大量非官方扩展模块,用户可自行编译模块。很多易语言本身不存在的功能,私人开发的模块基本会有,大大增加了易语言的用户人群。我初学程序时也选择了易语言,但是对它深入研究后得出了“不能一直用易语言”的结论。汉字化编程虽然成为国内一项突破,但是就开发就业前景而言,企业招聘易语言程序员几乎很少甚至没有,如果为了找份工作学习易语言请慎重考虑,如果是个人学习研究可以花时间好好研究一番,我也很希望中国人能用上自己的编程语言,但是这条路可能还很长。让我们翘首以待易语言强大起来。 注释: Linux是一个免费使用和自由传播的UNIX系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。 PANDAOS 是我和朋友陈愉鑫正着手开发的全自制多任务操作系统,它将不采用任何国内外内核,全部由我们自主开发。预计该系统能在 2015年出现命令行(内核基础开发完)。 PANDAOS网站:www.pandaos.netVBS(VBScript的进一步简写)是基于Visual Basic的脚本语言。 我进一步解释一下, Microsoft Visual Basic是微软公司出品的一套可视化编程工具(即VB), 语法基于Basic. 脚本语言, 就是不编译成二进制文件, 直接由宿主(host)解释源代码并执行, 简单点说就是你写的程序不需要编译成exe, 而是直接给用户发送vbs的源程序, 用户就能执行了。 结语: 易语言是一门高级语言,C也是一门高级语言。希望易语言早日脱离支持库,成为中文的C语言! 参考文献: 2.《中文编程:从入门到精通》作者:大连易翔软件开发有限公司
|