精易论坛

标题: 易语言编程常见错误 - [新手篇] [打印本页]

作者: 项目部002    时间: 2019-3-6 16:44
标题: 易语言编程常见错误 - [新手篇]
本帖最后由 项目部002 于 2019-3-6 17:25 编辑

本篇文章将一些常见的错误复现与解决方案写出来供新手参考,旨在帮助新手更好的了解易语言,在用易语言编程的时候少踩坑。


常见错误:001
症状:调试运行之后点击“按钮1”不会弹出信息框

病因:“将参数变量声明到组件事件里”
治标:将“参数一”与“参数二”删除
治本:组件事件的参数变量除了支持库自带的参数回调变量外,不允许用户额外声明组件事件子程序里的参数变量,牢记则治本


常见错误:002
症状:声明了变量“A”与变量类型“整数型”也用“=”号赋值了但报错不是声明的变量类型“整数型”

病因:一行代码中连续出现两个“=”号则从第一个“=”号后的代码为一个整体判断
治标:将第二个“=”号改为“+”号
治本:A=A 自身等于自身无实际意义也会报错“错误(10092): 不能将变量自身赋值给自身。” A=A=1  这里第一个A看作是一个变量,第二个A=1 看作是一个判断,这里是表达的意思是 A是否等于1 是否在程序的表达是真假,也就是如果A=1,则这个判断的结果就是真,第一个A也就等于真,第一个A等于真了,真假的类型是逻辑型,这和开始声明的A是整数型不符,调试的时候易语言就检查到这个错误就报错了。牢记一行代码中出现的“=”号数量与第一个变量实际表达的意义是什么


常见错误:003
病症:声明了自定义数据类型仍提示“错误(36): 找不到指定的对象成员命令名称“xx”。”

病因:模块或者支持库已定义了的自定义数据类型被用户重复在源码里重新定义,易语言自动将用户自己重新定义的自定义数据类型为首选加载。
治标:删除自己重新声明的同名自定义数据类型,直接声明引用模块或者支持库已定义的自定义数据类型
治本:自定义数据类型\DLL命令\子程序\类模块\资源文件\常量数据\全程局变量  这些需要声明或定义的数据易语言会在调试或者在编译的时候优先加载用户自己声明或定义的数据,没有找到匹配的才会去支持库或模块中寻找匹配的数据。牢记已声明或定义的过的数据无需重复声明或定义,直接引用即可


常见错误:004
病症:已加载模块名,按模块里的命令参数提示传递的对应变量类型的参数但提示报错
病因:加载两个拥有同名的模块,但命令参数不相同。
治标:挨个删除已加载的模块,直到命令通过调试或者编译,将冲突的模块移除模块引用表。
治本:易语言调试或编译的时候,对于从模块中引用名的顺序是按模块引用表的前后顺序引用的,如果你引用的命令在引用的第二个,但第一个模块也有同名的命令,则优先加载第一个模块的命令,如果第一个模块命令参数不同于第二个模块的命令,易语言就会报错。牢记引用的模块的时候尽量避免出现有同名但不同参数多个模块同时引用
      
常见错误:005
病症:已赋值变量传递到命令里,最后调试输出的时候并不是一开始赋值的数据


病因:如果支持库或模块命中里有参考返回的参数变量,一旦命令内部对可参考返回的参数赋值,则会覆盖一开始赋值的数据
治标:只声明变量,不对变量赋值,由命令内部自动赋值。
治本:参考返回是为了让命令支持多个数据返回,理论上现有易语言的调用的命令返回值均只有一个,如果想返回多个则需要通过参考返回的形式将数据返回(注意:在易语言里数组、用户定义数据类型、库定义数据类型、文本型、字节集型数据是默认参考返回),在DLL命令中,参考返回为“传址”。牢记参考返回的变量无需在调用命令前赋值,注意参考返回的数据类型,避免声明的变量类型错误。


常见错误:006          
病症:已声明变量且已赋值,但提示数据类型转换错误

病因:只声明了变量名未声明变量的数据类型
治标:根据你赋值的数据的实际类型将声明的变量名定义对应的类型
治本:易语言默认的数据类型(数值型[字节型、短整数型、整数型、长整数型、小数型、双精度小数型]、文本型、字节集、日期时间型、逻辑型),此外还有库定义的数据类型,用户自定义数据类型。而声明变量时类型不填写,易语言默认为整数型。牢记声明变量的时候除了填写变量名称也要记得填写对应的数据类型,如果声明的就是整数型则可以直接留空(不建议这么做哦),留空为整数型同样适用DLL命令与自定义数据类型的成员变量。


常见错误:007
病症:正确声明了类模块,也正确传递了参数值,调用命令返回结果也是正确的,但最后效果是错误的

病因:类模块命令在引用的时候会自动运行类里面默认的“_初始化”子程序,在当前变量域结束的时候自动调用类里面的“_销毁”。除了调用一次便直接生效的类模块命令外,动态的调用的例如图中的“类_托盘”,在类自动调用“_销毁”之后,里面的类命令将全部失效
治标:将动态调用类型的类模块声明到程序集变量或全局变量即可。
治本:单独的子程序中,局部变量只会在该子程序被调用的时候有效,如果该子程序运行完毕,则子程序中的所有局部变量将失效。这里有前提条件,子程序中的局部变量没有设置为静态变量,因为按易语言的规则(如果局部变量在定义时此属性被设置为假,那么运行应用程序时,此变量在其所在子程序开始被执行前自动分配存储空间并初始化,在所在子程序执行完毕后自动释放所分配的存储空间。也就是说,变量的存储空间仅在其所在子程序执行过程中存在;如果此属性被设置为真,那么此变量与全局、程序集变量一样,被分配给在程序运行期间永久存在的存储空间并仅在应用程序启动运行前被初始化一次。)设置为静态变量后局部变量将和全部、程序集变量一样。注意这里类模块命令即时设置为静态局部变量但其他子程序仍不能直接调用该类模块的其他命令。牢记局部变量的特性与类模块命令的特性。           


常见错误:008
病症:未勾选支持库但打开源码仍然能正常调用该支持库提供的命令,把源码发给也没勾选支持库的易友,易友打开源码提示xx支持库不存在,无法正常运行源码
病因:未勾选支持库,本地易语言支持库文件夹里也没有这个支持库,只要打开的源码里调用了该支持库的命令易语言就会报xx支持库不存在。
治标:下载提示中对应版本的支持库文件放到易语言根目录(\e\lib)文件夹中,重新打开源码即可。
治本:发源码给易友或开源源码的时候如果用到了不常见或非官方支持库的支持库,尽量将该支持库的文件与源码打包发送或开源。因为易语言IDE加载支持库的方式是先将根目录(\e\lib)里的所有支持库文件(.fne)加载到内存里,再根据用户最后一次配置的支持库信息显示是否勾选,如果你没勾选但支持库配置表里有这个支持库,打开调用了这个支持库命令的源码也不会报错。牢记如果源码里用到了不常见或非官方的支持库的命令,尽量将该支持库(.fne)文件与源码打包,


常见错误:009
病症:将支持库文件(.fne)与源码打包给了易友,但对方只能调试与编译,不能静态编译。
病因:未将(.fne)动态库对应的静态支持文件一起打包。
治标:将(.fne)动态库对应的静态支持文件一起打包,将动态库(.fne)放到易语言根目录(\e\lib)文件夹中,静态支持文件(.lib与.res)放到易语言根目录(\e\static_lib)文件夹中,重新打开源码即可。
治本:支持静态编译的支持库除了有(.fne)的动态库还有(.lib)与(.res)静态支持文件。牢记包含支持静态编译支持库的源码需要将动态(.fne)与静态(.lib与.res)一起打包再发送或开源,不然在打开源码静态编译的时候就会报错


常见错误:010
病症:打开源码调试或编译的时候提示“错误(37): 找不到指定的命令/子程序/Dll命令调用名称xxx”

病因:调用了当前调试或编译环境里没有的命令
治标:勾选对应的支持库或引用对应的的模块。
治本:调试或编译的时候提示“错误(37)”,
      将提示的命令名在“http://esdn.125.la/”里搜索一下,看这个命令是否出自某个支持库,
      如果不是再到“http://ec.125.la/sub.htm”搜索一下,看这个命令是否出自“精易模块”,
      如果不是再到“https://125.confly.eu.org/”搜索一下是否出自论坛相关的开源贴,
      如果不是再到“http://www.eyuyan.la/search.html”搜索一下是否能在易语言资源网已搜集的资源中找到,
      如果都不是的话就需要百度一下查找一下这个命令的出处。      






未完待添加(本文中有不对或需要补充的地方,希望大家不要吝啬,指出不对或需要补充的部分,谢谢大家)




小节:善用F1,在易语言IDE代码编辑区哪里不懂,鼠标点到那里再按F1,看提示信息,根据提示信息纠正错误。


让易更易,这里洞洞俩带个头,将反馈的一些问题汇总并整理成不同的文章,旨在帮助新手更好的学习易语言。
众人拾柴火焰高,一个人的力量是有限的,这里希望各位前辈共同整理常见错误与解决方案发表出来帮助新人,为易语言“新鲜血液”的补充贡献出自己的一份力量。


作者: 流星暴雨    时间: 2019-3-6 17:13
一不小心居然拿了个第一
我是来领精币的
作者: 大司命    时间: 2019-3-6 17:22

已阅!顺手拿个精币~
作者: 神盾科学    时间: 2019-3-6 17:24
  已阅!顺手拿个精币~
作者: 刘一缘    时间: 2019-3-6 17:38


已阅!顺手拿个精币~
作者: 阿珏    时间: 2019-3-6 17:39
已阅!顺手拿个精币~

作者: 汉族    时间: 2019-3-6 17:47
if(a=a=a=a=a=a=a=a)不知道会怎么样
作者: vioer    时间: 2019-3-6 18:12
我是新手,犯二的地方多了去了,以后想起来再添加,现在领了JB先.....
作者: Y罢不能    时间: 2019-3-6 20:59
我是新手,我都会犯,我这次来就是为了JB。
作者: Terrell    时间: 2019-3-6 21:30
太需要这些知识了,感谢
作者: 2366826558    时间: 2019-3-6 22:08
新手感觉都会有点
作者: 中寒    时间: 2019-3-6 22:48
写法有点看不明白。自己通常不会这样写。
作者: feimu2005    时间: 2019-3-6 23:51
顺手拿个精币~
作者: ljty1980    时间: 2019-3-7 10:38
避免踩空,,,先预防
作者: luigiyaoqi    时间: 2019-3-7 11:36
哒哒哒哒哒哒多多多多多多多
作者: 8554036    时间: 2019-3-7 11:55
新手到此一游

作者: 星空Allstar    时间: 2019-3-7 11:55
顺手拿个精币~
作者: 李侠客    时间: 2019-3-7 12:07
顺手拿个币
作者: CryptoJS    时间: 2019-3-7 12:30
顺手拿个币
作者: 恩赐    时间: 2019-3-7 12:53

顺手拿个币
作者: 乌云科技团队    时间: 2019-3-7 13:34
哈哈哈第一个我就遇到过  搞半天哈哈哈哈
作者: bnot    时间: 2019-3-7 14:01
遇到过一两个,顺手拿金币
作者: yxl2008    时间: 2019-3-7 14:32
非常好,非常中肯,谢谢分享!
作者: Nice回忆    时间: 2019-3-7 15:50
目测没有多少新手来看,而是直接问答区
作者: 戏雨流年    时间: 2019-3-7 16:49
目测没有多少新手来看,而是直接问答区
作者: 冷萌    时间: 2019-3-7 17:51
感谢发布原创作品,精易因你更精彩!
作者: 秦秦    时间: 2019-3-7 20:07
等我学到那么复杂先
作者: 冷萌    时间: 2019-3-8 21:51

好好学习一下
作者: jjyy774447    时间: 2019-3-9 15:20
从零开始学易语言
作者: fangsheng    时间: 2019-3-18 16:48
哈哈哈,好好学习,天天向上
作者: 队长是我    时间: 2019-3-18 19:31
好好学习。。。。
作者: 极品金盛    时间: 2019-3-19 15:22
共同努力,共同进步
作者: 柚子先生007    时间: 2019-3-19 18:13
共同努力,共同进步
作者: 学易未精    时间: 2019-3-20 09:57
非常实用,谢谢              
作者: 三个水    时间: 2019-3-20 09:57
好好学习。。。
作者: qgchqgch89    时间: 2019-3-21 12:42
学习一下 哈哈
作者: tengbo    时间: 2019-3-21 16:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小男生    时间: 2019-3-21 19:00
支持?        
作者: swb8023    时间: 2019-3-29 00:25

作者: 天辰o    时间: 2019-3-29 21:55
新手学习学习
作者: 中寒    时间: 2019-3-30 16:28
新手学习学习
作者: yssustore    时间: 2019-4-2 15:20
新手学习学习
作者: 376    时间: 2019-4-2 16:50
难得的帖子啊啊啊啊
作者: c2507813535    时间: 2019-4-3 13:23
混点井壁,下载个模块,双收
作者: 376    时间: 2019-4-6 12:47
厉害啊啊啊啊啊啊啊啊啊啊66666666666666
作者: 生不如死    时间: 2019-4-6 17:32
厉害
作者: 63320209    时间: 2019-4-7 12:39
yssustore 发表于 2019-4-2 15:20
新手学习学习

感谢分享,很给力!
作者: thejun    时间: 2019-4-9 22:08
解决了很多小白问题,感谢,哈哈哈
作者: 冷霜醉    时间: 2019-4-13 13:33
感谢楼主分享,支持一下!
作者: 冷珞    时间: 2019-4-16 22:03
感谢楼主分享,支持一下!
作者: 鱼还有静    时间: 2019-4-16 22:22
刚好要用到 非常感谢
作者: leo2leo    时间: 2019-4-17 13:05
好东西。谢谢
作者: 決不放棄    时间: 2019-4-18 19:58
这些都是新发的贴子啊
作者: qwf169    时间: 2019-4-19 00:31
很好的教程,正需要
作者: qwf169    时间: 2019-4-19 08:54
解决了很多小白问题,感谢
作者: tangch728    时间: 2019-4-20 09:10
感谢分享,下载学习
作者: tangch728    时间: 2019-4-20 09:21

好东西,好东西
作者: tangch728    时间: 2019-4-20 09:30
刚好要用到 非常感谢
作者: 63320209    时间: 2019-4-20 22:22

感谢楼主分享,支持一下!
作者: 63320209    时间: 2019-4-20 22:22
tangch728 发表于 2019-4-20 09:21
好东西,好东西


感谢楼主分享,支持一下!
作者: tangch728    时间: 2019-4-21 08:28

很好的教程,正需要
作者: yuan01    时间: 2019-4-25 10:50
感谢分享,很给力!~
作者: qwf169    时间: 2019-4-26 07:45
小白还是有些看不懂
作者: 花诗雨露    时间: 2019-5-4 19:30

作者: 不可胜言    时间: 2019-5-4 23:19
这贴子发布得,
非常好
作者: 言不终    时间: 2019-5-9 13:54
感谢分享
作者: z847978794    时间: 2019-5-9 17:58
谢谢您的教导,很是受用
作者: cc666888    时间: 2019-5-9 18:26
大佬出手,果然不同凡响
作者: cc666888    时间: 2019-5-9 18:36
大佬出手,果然不同凡响
作者: cc666888    时间: 2019-5-9 18:37
6666666666666
作者: 我fff慈悲    时间: 2019-5-10 10:14
大佬出手,果然不同凡响
作者: cc666888    时间: 2019-5-10 14:53
支持支持666666
作者: cc666888    时间: 2019-5-10 14:53
支持支持666666
作者: cc666888    时间: 2019-5-10 14:54
支持支持666666
作者: 妹妹你别这样    时间: 2019-5-11 16:33
6666666666
作者: 妹妹你别这样    时间: 2019-5-11 16:34
6666666666
作者: zhuzhusha    时间: 2019-5-11 17:29
支持了啊!
作者: zhuzhusha    时间: 2019-5-11 17:30
疯狂支持一下哈!
作者: yuan01    时间: 2019-5-11 23:40
貌似还不够十五字,我只是来打酱油的
作者: 小菜菜o    时间: 2019-5-13 09:34
支持支持666666
作者: 一箭穿心    时间: 2019-5-13 21:58
感谢分享,很给力!~
作者: h34164708k    时间: 2019-5-14 07:16
感谢分享,很给力!~
作者: 徐江龙    时间: 2019-5-14 15:23
日行一善,精币到手!
作者: 徐江龙    时间: 2019-5-14 15:23
日行一善,精币到手!
作者: 徐江龙    时间: 2019-5-14 15:23
日行一善,精币到手!


作者: 徐江龙    时间: 2019-5-14 15:28
日行一善,精币到手!
作者: 徐江龙    时间: 2019-5-14 15:28
日行一善,精币到手!
作者: 徐江龙    时间: 2019-5-14 15:29
日行一善,精币到手!
作者: 徐江龙    时间: 2019-5-14 15:29
日行一善,精币到手!
作者: 徐江龙    时间: 2019-5-14 15:31

日行一善,精币到手!
作者: 徐江龙    时间: 2019-5-14 15:31

日行一善,精币到手!、

作者: 初学者初来乍到    时间: 2019-5-14 16:41
多多考虑新手是对的,也是对发展有帮助的,希望继续
作者: iock    时间: 2019-5-14 21:06

作者: 言不终    时间: 2019-5-15 17:35

作者: 徐江龙    时间: 2019-5-16 10:03
1111111111111
作者: 徐江龙    时间: 2019-5-16 10:03
111111111111111
作者: 徐江龙    时间: 2019-5-16 10:03
11111111111
作者: 徐江龙    时间: 2019-5-16 10:05
..............
作者: 徐江龙    时间: 2019-5-16 10:10
.............
作者: 我爱黑暗    时间: 2019-5-17 19:14
1111111111111




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4