回复 3# xiehuahere
官方有个例子.
http://www.autoitscript.com/forum/topic/93732-forceref-answered/
有这个#forceref,但是没有#forcedef(可能是以前的版本用的吧?)
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -v 3
Global $a
Func Test($x)
Local $y
Return
EndFunc
运行上面的代码出错.
WARNING: $x: 已声明,但未在函数中使用.
Func Test($x).
WARNING: $y: 已声明,但未在函数中使用.
Local $y
再运行下面的代码就不出错.
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -v 3
Global $a
#forceref $a,Test
Func Test($x)
Local $y
#forceref $x,$y
Return
EndFunc
Au3Check的有效参数:
-q : 静默 (只当错误/警告时显示)
-d : 使用 Opt("MustDeclareVars", 1) 必须声明变量
-I dir : 添加一个目录用来搜索 include 文件
-U -|file : 输出引用的UDF和全局变量
-w 1 : 已经包含文件 (开)
-w 2 : 丢失 #comments-end (开)
-w 3 : 已经声明变量 (关)
-w 4 : local (局部)变量使用于了 global (全局)空间 (关)
-w 5 : 局部变量已经声明当没有使用 (关)
-w 6 : 使用 Dim 时的警告(关)
-v 1 : 显示包含文件的路径/文件(关)
-v 2 : 显示 lexer tokens (关)
可能是编译时候Au3Check用了“-w 3” 这个参数时出不出警告吧.
可以检查无意义的代码(我是这么想的,具体说不清). |