大家好,我是陈景序,今天我们来聊聊易语言中一个常见的问题:数组下标必须大于等于1的错误。这个问题很多开发者都遇到过,下面我们就来一起看看怎么解决它。
错误描述与提示
当你看到这样的错误提示:
错误提示:
报错界面给出了2个错误值:
67174405 = 0x4010005
81 = 0x51
这时候,你可能一脸懵逼,不知道这代表什么意思。0x4010005 的意义我对照PE无法定位。有知道的请告知,谢谢。
查找方法
别急,我们可以通过OD工具来查找问题所在。
OD->右键->查找->命令 搜索
push 0x4010005
可能获取到多个地址,可以通过
push 0x51 继续做判断
结合上下代码判断报错的位置,进行错误判断。
易语言数组判断代码示例
0040113C |. 68 51000000 push 0x51。 --
00401141 |. 68 05000104 push 0x4010005 --
00401146 |. 68 04000000 push 0x4. --
0040114B |. E8 2C010000 call 111.0040127C. ---1 (index < 1)
00401150 |. 83C4 0C add esp,0xC
00401153 |> 59 pop ecx
00401154 |. 5B pop ebx
00401155 |. 3BC1 cmp eax,ecx
00401157 |. 7C 17 jl short 111.00401170
00401159 |. 68 51000000 push 0x51
0040115E |. 68 05000104 push 0x4010005
00401163 |. 68 01000000 push 0x1
00401168 |. E8 0F010000 call 111.0040127C. --2 (index > len(arr))
以上就是易语言数组下标错误的一些解决方法。如果你还有其他问题,欢迎在评论区留言讨论。
我是陈景序,来自「websoft网络软件专家」(www.phpwebsoft.com),如果你对Web开发感兴趣,欢迎关注我们的网站,了解更多内容。
