简介:《易语言中文编程_从入门到精通(图文)》是一份面向零基础中文用户的易语言编程入门教程,旨在帮助读者跨越英文编程门槛,快速掌握中文编程的核心逻辑与实操技能。资源为单个PDF文档,压缩包大小2.28MB,内容以图文形式呈现,覆盖从软件界面认识到程序结构设计的完整学习路径。目前已有1754人学习下载。教程先从“走进易世界”开始,引导读者熟悉易语言设计窗口与基础设置,并通过“Hello, World!”和交互程序建立初步编程体验;随后逐步深入到按钮与标签综合运用、图像文字添加、计算能力展示,以及顺序、选择、多分支和循环等程序控制结构。借助猜数游戏等实例,读者可理解条件判断与多分支设计,掌握编写多个执行路径程序的方法。本书还包含菜单设计等进阶主题,配有练习题,适合系统自学或作为教学辅助资料。整体目录清晰、循序渐进,既能让初学者快速上手,也为进一步提升编程逻辑与实战能力提供了扎实支撑。
1. 易语言不是玩具语言,是Windows自动化最快上手的路径
很多人看到“中文编程”四个字,就默认它是给小学生玩的东西。实际用过一轮易语言的人会承认:它把关键字换成中文、让IDE自带可视化窗口布局,确实把“写一个Windows程序”的门槛拉到了极低。你不需要背CreateWindowEx,不需要理解类与对象,拖一个按钮上去、双击、敲几行中文命令,一个原生窗口程序就能跑起来。这篇文章顺着《易语言中文编程_从入门到精通(图文).pdf》这类教程的常见脉络,把环境搭建、核心语法、DLL调用、线程和脚本自动化一次讲透。适合三类读者:想快速写公司内部小工具的,需要调用Windows原生接口但不想碰C++的,以及想研究中文编译期特性的开发者。看完你能独立写一个带界面的监控程序,也知道后续往哪个方向深入。
2. 搭建易语言开发环境:从安装IDE到第一个中文窗口
2.1 安装后的三个关键设置:支持库、启动窗口、编译器版本
易语言的安装包体积不大,双击后一路下一步即可,但装完别急着写代码,先做三个设置。
第一个设置是安装路径。建议装到D:\e这类不含空格的目录,避免后续静态编译时某些第三方模块因为路径含空格而加载失败。第二个设置是支持库勾选。打开IDE后,点击“工具”菜单下的“支持库配置”,把“基本组件”“扩展界面支持库”“多线程支持库”都勾上。第三个设置是检查编译器版本。默认安装会带一个5.x版本的编译器,生成的是32位程序,在64位Windows上通过WOW64运行,系统目录会被重定向,这一点在第4章调用DLL时特别容易踩坑。
设置完成后,点击“新建”→“Windows窗口程序”,IDE会自动生成一个名为“_启动窗口”的窗口和一个“窗口程序集_启动窗口”的程序集。窗口程序的入口不是main,而是这个启动窗口的创建事件,后续所有代码都挂在这个程序集里。
2.2 拖一个按钮,连一个事件:可视化窗口的基本套路
易语言的窗体设计器和Delphi、VB很像,左侧是控件面板,中间是窗体画布,右侧是属性表。鼠标点住“按钮”控件拖到窗口上,然后双击按钮,IDE会自动跳转到代码编辑页并生成一个以_按钮1_被单击命名的子程序。这就是事件回调,你只需要在这个子程序里写业务逻辑。
下面是最简单的第一段代码:
.版本 2 .程序集 窗口程序集_启动窗口 子程序 _按钮1_被单击 信息框 (“欢迎开始易语言中文编程”, 0, , )信息框是易语言内置命令,负责弹出一个对话框,参数依次是提示文本、图标类型、标题、父窗口句柄。这里的0表示普通信息图标。信息框是阻塞命令,代码会停在这一行,直到用户点了“确定”才继续往下执行。
这个流程里要记住一个习惯:双击控件生成事件子程序的机制,决定了每个事件子程序的名字都是由“控件名_事件名”构成的。你后面改控件名时,IDE会自动帮事件子程序改名,但如果你手动改名字,事件就会失联,按钮点了没反应。
2.3 静态编译和动态编译怎么选
写好的程序最后要分发给别人,在易语言里最常被问到的就是编译方式。IDE的“编译”菜单下有两个主要选项:动态编译和静态编译。这两者的区别直接关系到你发出去的EXE能不能跑。
| 编译方式 | 产物体积 | 运行时依赖 | 典型使用场景 |
|---|---|---|---|
| 动态编译 | 几十到几百KB | 需要krnln.fnr等运行库文件 | 自己调试、快速迭代 |
| 静态编译 | 通常1~3MB | 不依赖运行库文件 | 发布给同事、上传到工具站 |
静态编译会把运行库直接链接进EXE,分发时只需要一个文件。代价是编译时间稍长,而且某些杀软对静态编译的易语言程序误报率会高一点。我一般发布工具时固定用静态编译,并把生成的EXE放到虚拟机里做一次行为验证,确认没有误报再发出去。
3. 易语言核心语法:中文关键字怎么对应到真实程序
3.1 数据类型不只是整数和文本
易语言的变量声明格式是变量名 为 数据类型,不需要写int或char *。但别觉得它比C语言简单就忽略底层差异,编译后这些类型照样对应到C语言的基本类型上。
| 易语言类型 | 内存尺寸 | C语言对应 | 典型作用 |
|---|---|---|---|
| 整数型 | 4字节 | int | 计数、句柄、状态码 |
| 长整数型 | 8字节 | long long | 大数值、文件偏移 |
| 小数型 | 4字节 | float | 浮点计算 |
| 双精度小数型 | 8字节 | double | 高精度计算 |
| 文本型 | 指针 | char * | 字符串操作 |
| 字节集 | 指针+长度 | 自定义结构 | 二进制文件、网络包 |
| 逻辑型 | 4字节 | BOOL | 真假判断 |
文本型在易语言里是带长度信息的指针,所以不需要担心strlen的问题。字节集则是处理二进制数据的核心类型,比如读取文件内容、拼接网络协议包,都用它。
下面这段代码把用户输入的文本转成字节集,再读取它的长度:
.版本 2 .程序集 窗口程序集_启动窗口 子程序 _按钮1_被单击 局部变量 原始文本, 文本型 局部变量 原始数据, 字节集 原始文本 = 编辑框1.内容 原始数据 = 到字节集 (原始文本) 标签1.标题 = “数据长度:” + 到文本 (取字节集长度 (原始数据))这里的到字节集负责把文本转成二进制,取字节集长度返回的是字节数,不是字符数。如果你把编辑框内容改成“abc中文”,返回的数值是7而不是5,因为中文字符在默认编码下占了3个字节。这个细节在对接第三方DLL时会直接影响缓冲区大小。
3.2 如果、判断、计次循环:控制结构的成对关系
易语言的流程控制关键字也是中文的,但用起来有几个容易犯的低级错误。首先是“如果”和“判断”的区别。如果适合单条条件分支,判断适合多值匹配,相当于C语言的switch。如果混用,代码可读性会很快崩溃。
一个典型的循环加判断:
.版本 2 .程序集 窗口程序集_启动窗口 子程序 _按钮1_被单击 局部变量 i, 整数型 计次循环首 (5, i) 如果真 (i % 2 = 0) 调试输出 (到文本 (i) + “是偶数”) 如果真结束 计次循环尾 ()计次循环首的第一个参数是循环次数,第二个参数是循环变量,循环结束后变量值会自动加1。如果真是“如果”的简化写法,不需要写否则。关键点是每个块结构都有一个对应的结束语句:如果对应如果结束,如果真对应如果真结束,计次循环首对应计次循环尾。
如果你写完代码发现“子程序范围错误”,多半是某个结束语句写漏了。IDE的代码编辑区会在结构关键字旁边自动画层级线,折叠毛刺一眼能看到。
3.3 子程序参数传递:默认传引用,保护变量用传值
子程序相当于函数,可以有参数和返回值。易语言默认参数传递方式是“传引用”,也就是在子程序内部修改变量会影响到外面。这一点和C语言默认值传递不一样,新手最容易在这里翻车。
.版本 2 .程序集 窗口程序集_启动窗口 子程序 追加前缀, 文本型 参数 原始内容, 文本型 参数 前缀, 文本型, 传值 原始内容 = 前缀 + 原始内容 返回 (原始内容) 子程序 _按钮1_被单击 局部变量 地址, 文本型 地址 = “中心路 100 号” 输出调试文本 (追加前缀 (“门牌:”, 地址))这里原始内容没有加任何修饰,默认是传引用,如果子程序内部修改它,外部的地址也会变。前缀加了传值关键字,只读取副本,不会被意外改动。凡是只入不出、不希望被修改的参数,都建议加传值。返回类型写在子程序这一行末尾,用返回 (值)输出结果。
4. 实战:易语言怎么加入DLL、启动线程、取硬盘容量和调用Net
4.1 DLL命令定义表:声明和C语言函数原型一一对应
易语言想调用Windows API或第三方动态库,靠的是“DLL命令”功能。在IDE菜单栏点“插入”→“DLL命令”,会打开一个编辑表,填写命令名、库文件名和参数。这里先把取硬盘容量的声明写出来:
DLL命令 GetDiskFreeSpaceExA, 整数型, “kernel32.dll” .参数 目录名, 文本型 .参数 可用字节, 整数型 .参数 总字节, 整数型 .参数 空闲字节, 整数型注意库文件名如果写的是kernel32.dll,默认会从系统目录加载。参数类型必须和C语言原型的指针参数严格对应,否则轻则取值无效,重则程序闪退。拿这个API举例,C语言原型里后面三个参数是PULARGE_INTEGER,本质是指向64位整数的指针。易语言的整数型只有4字节,这里能传地址是因为编译器会自动取变量地址传给DLL,但结果值一旦超过4GB就会被截断。要真正取到硬盘容量,必须改用长整数型版本。
4.2 取硬盘容量的完整代码:32位系统的容量截断问题
下面是一个能跑的取C盘剩余空间例子:
DLL命令 GetDiskFreeSpaceExA, 整数型, “kernel32.dll” .参数 目录名, 文本型 .参数 可用字节, 长整数型 .参数 总字节, 长整数型 .参数 空闲字节, 长整数型 子程序 _取容量按钮_被单击 局部变量 可用空间, 长整数型 局部变量 总空间, 长整数型 局部变量 空闲空间, 长整数型 局部变量 错误码, 整数型 如果真 (GetDiskFreeSpaceExA (“C:\”, 可用空间, 总空间, 空闲空间) = 0) 错误码 = GetLastError () 信息框 (“调用失败,错误码:” + 到文本 (错误码), 16, , ) 返回 () 如果真结束 标签1.标题 = “可用空间:” + 到文本 (可用空间)GetDiskFreeSpaceExA的第一个参数如果传“C:\”,要确保目录以反斜杠结尾;传“C:\”这种写法在Windows里会被识别为根目录。第二个到第四个参数在DLL命令表里声明为长整数型,调用时直接把变量名写进去,易语言编译时会自动生成指向变量的指针。如果返回值是0,说明调用失败,需要通过GetLastError获取错误码。常见的错误码是5,表示没有权限,比如你试图读取别人的加密分区。
4.3 用支持库启动线程,界面不卡死
易语言的窗口程序默认跑在主线程里,如果直接在按钮事件里执行长循环或网络请求,窗口会假死。解决办法是用支持库提供的启动线程命令。
.版本 2 .支持库 EThread .程序集 窗口程序集_启动窗口 .程序集变量 线程句柄, 整数型 子程序 _启动线程按钮_被单击 线程句柄 = 启动线程 (&工作线程, 1) 子程序 工作线程 参数 任务编号, 整数型 计次循环首 (1000000, i) 处理事件 () 计次循环尾 () 调试输出 (“任务完成:” + 到文本 (任务编号))启动线程的第一个参数是子程序地址,第三个参数可以不写。子程序参数通过第二个参数传入,参数类型固定为整数型,如果要多传几个值,就把这些值打包到一个字节集或自定义数据类型里再传递。注意线程内部不能直接写标签1.标题 = ...这种界面操作,否则会跨线程访问控件句柄,导致崩溃。要在线程里更新界面,用处理事件()交给窗口消息循环,或者通过“标签反馈事件”投递消息。
4.4 易语言运行调用Net程序:命令行桥接
很多易语言用户会碰到“运行调用net”这个需求,说白了就是想在易语言程序里驱动.NET程序集。易语言本身不能直接using System,但可以通过命令行配合控制台程序完成互操作。
常见做法是先用C#写一个控制台程序,把业务封装成带参数和标准输出的命令,然后在易语言里调用:
运行 (“dotnet D:\tools\CheckNet.dll --mode check”, 假, 1)运行的第一个参数是命令行,第二个参数假表示不等待程序退出,会直接往下执行;第三个参数1表示隐藏窗口。如果你想获取NET程序回传的结果,就不能用运行,要改用运行控制台程序并传递一个字节集来接收标准输出。
4.5 大漠插件和HID键鼠:中文命令快速控制外部库
易语言里常见的“大漠脚本开发”其实是调用大漠插件这个COM组件。声明一个对象变量,用创建命令挂上COM组件,然后用方法调用组件接口:
.版本 2 .程序集 窗口程序集_启动窗口 .程序集变量 大漠对象, 对象 子程序 _初始化按钮_被单击 大漠对象.创建 (“dm.dmsoft”, ) 大漠对象.方法 (“SetPath”, “C:\scripts”)COM方法名和参数顺序要以插件文档为准。HID键鼠这类硬件级输入,一般不推荐直接在易语言里写。大多数桌面自动化用user32.dll里的mouse_event和keybd_event就够了。需要HID通信时,通常是配合厂商SDK完成枚举和读写,易语言这边只需要通过DLL命令声明原样映射接口,参数用字节集传递报告数据。
5. 易语言反编译与安全防护:自校验和源码筛选实用技巧
5.1 用运行目录和文件长度做自校验
易语言的EXE虽然编译成本地代码,但程序结构相对规整,反编译工具可以还原出大部分逻辑,只是变量名和注释会丢失。要降低源码泄露后的损失,常见办法是加壳和自校验。自校验不复杂,基本原理是程序运行时检查一个外部文件是否存在、长度是否符合约定,不符合就拒绝执行。
.版本 2 .程序集 窗口程序集_启动窗口 子程序 _启动窗口_创建完毕 局部变量 配置文件, 文本型 配置文件 = 取运行目录 () + “\license.dat” 如果真 (取文件长度 (配置文件) < 1024) 信息框 (“授权文件缺失或已被修改”, 16, , ) 结束 () 如果真结束取运行目录返回EXE所在目录,取文件长度返回字节数。结束()会强制终止整个进程。反编译工具能看到这段检查代码,但攻击者如果只拿到一个单独EXE,没有配套的license.dat文件,程序照样跑不起来。这种方法防不住专业破解,但能挡住大多数“下载源码改个窗口标题”的情况。
5.2 从源码分享网下载代码先看这几个点
“易语言源码分享网”里确实有不少质量不错的工具源码,但里面也混着带私货的版本。下载后不要急着双击运行,先用文本编辑器打开源码文件,搜索这几个命令:取网络文件、写到文件、删除文件、运行 (“cmd、写注册项、置自动启动。如果看到“取网络文件”搭配“写到文件”,大概率是下载者。把代码放到虚拟机里执行一次,再看进程列表里有没有多出其他进程。
5.3 杀软误报的处理顺序
易语言静态编译出来的EXE被误报是常有的事。先确认你的代码里没有加壳、没有反调试、没有修改系统目录。确认干净后,把EXE提交给可疑文件在线扫描平台,查看各家杀软的报告,再由公司安全团队决定是否加入白名单。不要为了躲避误报给程序加未知壳,那等于把程序控制权交给陌生人。
本文还有配套的精品资源,点击获取