tryhi 发表于 2010-11-23 14:33:54

【已解决】请教个基础问题:msgbox叫什么函数,_rundos叫什么函数?

本帖最后由 tryhi 于 2010-11-23 15:48 编辑

这个问题不在于函数的功能,而在于如何称呼,前面带下划线的函数(比如_StringInsert、_ColorGetBlue等)是不是叫“UDF函数”,不带的(比如:run、inputbox等)叫“系统函数”,是不是这样称呼(仅讨论这两类自带函数,不讨论自造的函数)?

也许这个问题本身没什么意义,但还是我想知道。。。

------------------------------------------------------------------------------------------------------------------------
根据三楼的答案,最基本的就叫函数,由其引申出来的叫定义函数
这题本身确实没什么意义,只是想知道它的术语罢了

kood481748 发表于 2010-11-23 14:53:06

本帖最后由 kood481748 于 2010-11-23 15:27 编辑

我要怎么回答你呢?
其实函数的命名规则和变量的命令规则是一样的,允许前面有下划线,只不过AU3收集的自定义函数喜欢命名为前面有个下划线。
我们就拿_RunDos()来说,请看下面两段代码:
第一段
#include <Process.au3>       ;为了使用_RunDOS()这个自定义函数,我们必段要插入这段库文件
_RunDOS("C:\windows\NOTEPAD.exe")
不知道你是否查找过你的电脑中au3的安装目录,里面就有这么一个文件“Process.au3”,打开看看,
能不能看得懂一些东西?看不懂也没关系,我接着给你讲:
第二段(现在我们来改写第一段代码)
;看到了吧,现在我们可以不要第一段代码中的第一行了
_RunDOS("C:\windows\NOTEPAD.exe")
;以下代码是从“Process.au3”这个文件当中提出来的
Func _RunDOS($sCommand)
        Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
        Return SetError(@error, @extended, $nResult)
EndFunc   ;==>_RunDOS
;以上代码是从“Process.au3”这个文件当中提出来的
看了上面两段代码,明白一些东西了没有?现在,我们来改函数名,函数名改什么都可以,但是不要和系统函数名相同
第三段
kood481748("C:\windows\NOTEPAD.exe")

Func kood481748($sCommand)
        Local $nResult = RunWait(@ComSpec & " /C " & $sCommand, "", @SW_HIDE)
        Return SetError(@error, @extended, $nResult)
EndFunc   ;==>_RunDOS

如果我的回答令你满意,可以给我加点贡献也好,尽快升级成为中级会员。

itljl 发表于 2010-11-23 15:16:24

msgbox叫函数,
_rundos叫自定函数

区别不在有没有下划线,而是msgbox是au3自带的,而_rundos是在AU3自带函数的基础上由用户写的完成相关功能的函数。
自带函数一般没有下划线,而用户自定义函数则不一定。

tryhi 发表于 2010-11-23 15:44:32

多谢楼上两位,2楼不太明白我的题意,不过非常感谢你这么详细的解答,今天分全加完了……改天吧。msgbox叫函数,
_rundos叫自定函数
这就是我要的答案,其他我都明白,非常感谢

kood481748 发表于 2010-11-23 20:14:18

回复 4# tryhi

UDF是User Defined Function的简写,把它翻译过来就是用户自定义函数

chenronting 发表于 2010-11-23 20:35:51

回复 5# kood481748


    你很强大.这些我也只知皮毛..谢谢今天给我上这么精彩的一课.

pusofalse 发表于 2010-11-23 20:48:42

MsgBox、Run这类的我习惯叫它“内置函数”,_RunDos这样的是“自定义函数”,“系统函数”一般是指封装在动态链接库里的API。反正都是函数,关键看它是在哪里定义的。

tryhi 发表于 2010-11-23 21:08:52

学习了,内置函数与自定义函数这种叫法自我感觉应该比较合适
页: [1]
查看完整版本: 【已解决】请教个基础问题:msgbox叫什么函数,_rundos叫什么函数?