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

常见错误: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)”,将提示的命令名在百度一下查找一下这个命令的出处。

Tip

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

opcdaclient 对com组件的调用返回了错误hresult_【分享】易语言编程常见错误新手篇...相关推荐

  1. System.Runtime.InteropServices.COMException:“对 COM 组件的调用返回了错误 HRESULT E_FAIL

    问题:使用Microsoft.Office.Interop.Word进行word的开发过程中出现的错误:System.Runtime.InteropServices.COMException:&quo ...

  2. strcmp返回值布尔类型的判断(分析常见错误)

    strcmp返回值布尔类型的判断 strcmp: 用于比较两个字符串,原型如下: int strcmp ( char const *s1, char const *s2): 如果s1小于s2,strc ...

  3. 对 COM 组件的调用返回了错误 HRESULT E_FAIL

    解决方法:打开控制面板--->管理工具--->服务和应用程序--->服务--->启用服务中的分布式事务服务  Distributed Transaction Coordinat ...

  4. visual studio 2019创建项目报错:对com组件的调用返回了错误hresult_fail(未解决)

    报错原因:看不懂 解决办法: 1.以管理员身份打开 Developer Command Prompt for VS 2017(vs2017开发人员命令提示符) 2.定位到你的vs2017的安装目录 例 ...

  5. recv返回的数据过大 易语言_高性能数据传输系统的框架设计

    1 引言 随着互联网和物联网的高速发展,使用网络的人数和电子设备的数量急剧增长,其也对互联网后台服务程序提出了更高的性能和并发要求.本文的主要目的是阐述在单机上如何进行高并发.高性能消息传输系统的框架 ...

  6. C/C++之函数返回值为指针或者是引用时常见错误总结

    1.说明 函数如果是指针或则引用的返回,一般全局变量.局部静态变量.局部动态分配内存的变量可以使用作为函数的返回值,局部变量不行,因为局部变量函数调用完会自动销毁内存,这个时候返回的指针或则引用就有问 ...

  7. c语言调用子程序的例子,几个C语言编程应用实例.DOC

    PAGE PAGE 290 第13章 几个C语言编程应用实例 13.1 TMS320LF2407与图形液晶显示模块接口及应用 源程序代码: 所需的复位和中断向量定义文件"vectors.as ...

  8. 易语言和java接口_易语言写接口让其他调用 易语言api使用教程

    易语言如何调用API函数? 你代码方法错了,如果传出参数为文本或字节集必须先"申请内存缓冲",如图1 源码中有两种方法,建议你采用"长整数"的那个,比较方便~! ...

  9. MFC/C++调用易语言的整数型+文本型与VS2010互动

    MFC/C++调用易语言的整数型+文本型与VS2010互动 版权说明:转载请注明,转自郑军学长(MFC/C++调用易语言的整数型+文本型与VS2010互动),http://www.cnblogs.co ...

  10. 易语言取linux命令返回值,易语言取程序返回值写法

    公告: 为响应国家净网行动,部分内容已经删除,感谢读者理解. 话题:易语言取程序返回值写法回答:在易语言中,程序包括"处理程序"都有六部分组成.一.程序名,就是程序的名称,程序名不 ...

最新文章

  1. itextpdf中文不显示_LaTeX实时预览中文
  2. NSNotificationCenter 线程相关
  3. Google Chrome —— 使用 PowerShell 命令安装 Google Chrome 浏览器
  4. iOS四种多线程(swift和oc)
  5. (51)多路时钟复用概述
  6. 95-090-024-源码-bin脚本-CLI提交Job-Run详解
  7. python列表的应用与实例_python列表生成式应用案例
  8. 广西大学计算机与电子信息学院李智,赵进创,广西大学 计算机与电子信息学院...
  9. mysql 分区表如何恢复_如何恢复mysql 单个innodb 分区表
  10. C语言 命令行 execl函数
  11. 【NOIP2010普及组】三国游戏题解
  12. 基于阿里云物联网的APP简单开发
  13. SAP系统Sizing的原理
  14. PC机插入麦克风后没有说话没有声音
  15. 视频流TS打包方式详解
  16. Android键盘监听事件
  17. 编写一个类,实现简单的栈(提示:用链表结构实现)。数据的操作按先进后出(FILO)的顺序。
  18. 全球顶级域名及国家域名列表
  19. Python中分割字符串又保留分隔符的办法
  20. C++独孤九剑第一式——拨云见日(对象内存模型)

热门文章

  1. 使用 Document!X 为自己的dll生成一个漂亮的说明文档
  2. 浅析 Community Server 在线用户列表与位置跟踪实现机制[原创]
  3. spring mvc组件以及架构流程详解
  4. 【代码优化】注解优先命名模式
  5. ScrollView嵌套GridView,自定义Gridview动态设置Item的高度,屏幕适配
  6. Code[VS]1997 守卫者的挑战
  7. cat 查看文件内容,默认输出到屏幕
  8. java理论知识看了忘_Java基础知识点总结--从细节再看Java(一)
  9. rust原声音乐_Joan Baez – Diamonds Rust
  10. 下拉框只读的时候没有下拉图标_百度下拉框营销秘密是什么