yarsye 发表于 2011-4-28 10:44:55

(已解决)关于SetError和SetExtended结果不一样的疑问

本帖最后由 yarsye 于 2011-4-29 10:06 编辑


SetError(2)
SetExtended(2)
MsgBox(0,1,@Error & @crlf & @extended)
iniwrite(@desktopdir & '\1.ini','s','errorcode',@error)
iniwrite(@desktopdir & '\1.ini','s','extendedcode',@extended)
运行上面测试代码后发现,msgbox里面的@error = 0 ,@extended = 2
桌面上ini文件里面的值却全部都是0,如果把msgbox注释掉ini里面还是0,奇怪的是为什么值会不一样?应该没什么问题的呀?

见2楼和3楼的解释。

easefull 发表于 2011-4-28 11:44:54

加了msgbox,@error必然是会变的.
第一次iniwrite后,@extended也是会变的,所以最后一行写入值必然是0
至于第一次iniwrite(无msgbox)的值也是0,怀疑是iniwrite过程中也调用了别的api之类的导致@error变化.

如果需要保存@error值,那么可以先用一个变量把这个值保存起来.

boyhong 发表于 2011-4-28 13:26:26

你第三行:里的@error ,@extended 的值来源于你第二行。明白了么?跟你第一行一点儿关系都没有。。。
因为:你的第二行:SetExtended(2)执行完后,就已经初始化:@error=0,@extended = 2

明白了么?下边第四行第五行同解均来源于上一行。。。。

masterpcc 发表于 2011-4-28 17:01:59

学习了,谢谢!!

(如果需要保存@error值,那幺可以先用一个变量把这个值保存起来)

yarsye 发表于 2011-4-29 09:06:14

回复 2# easefull


   感谢 学习了

yarsye 发表于 2011-4-29 09:06:24

回复 3# boyhong


    明白了 谢谢

netegg 发表于 2011-4-29 09:28:17

@error是错误值,@extended错误的原因值

yarsye 发表于 2011-4-29 14:22:34

回复 7# netegg


    感谢回复 知道定义一个全局变量是必须的了
页: [1]
查看完整版本: (已解决)关于SetError和SetExtended结果不一样的疑问