找回密码
 加入
搜索
查看: 3986|回复: 7

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

  [复制链接]
发表于 2010-11-23 14:33:54 | 显示全部楼层 |阅读模式
本帖最后由 tryhi 于 2010-11-23 15:48 编辑

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

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

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

评分

参与人数 2金钱 +70 收起 理由
306500020 + 60 我很赞同
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 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


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

评分

参与人数 2金钱 +10 贡献 +7 收起 理由
tryhi + 10 + 5
afan + 2

查看全部评分

发表于 2010-11-23 15:16:24 | 显示全部楼层
msgbox叫函数,
_rundos叫自定函数

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

评分

参与人数 2金钱 +30 贡献 +2 收起 理由
tryhi + 10 + 2
afan + 20

查看全部评分

 楼主| 发表于 2010-11-23 15:44:32 | 显示全部楼层
多谢楼上两位,2楼不太明白我的题意,不过非常感谢你这么详细的解答,今天分全加完了……改天吧。
msgbox叫函数,
_rundos叫自定函数
这就是我要的答案,其他我都明白,非常感谢
发表于 2010-11-23 20:14:18 | 显示全部楼层
回复 4# tryhi

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

评分

参与人数 1金钱 +10 贡献 +2 收起 理由
tryhi + 10 + 2

查看全部评分

发表于 2010-11-23 20:35:51 | 显示全部楼层
回复 5# kood481748


    你很强大.这些我也只知皮毛..谢谢今天给我上这么精彩的一课.
发表于 2010-11-23 20:48:42 | 显示全部楼层
MsgBox、Run这类的我习惯叫它“内置函数”,_RunDos这样的是“自定义函数”,“系统函数”一般是指封装在动态链接库里的API。反正都是函数,关键看它是在哪里定义的。

评分

参与人数 1金钱 +15 贡献 +3 收起 理由
tryhi + 15 + 3

查看全部评分

 楼主| 发表于 2010-11-23 21:08:52 | 显示全部楼层
学习了,内置函数与自定义函数这种叫法自我感觉应该比较合适

评分

参与人数 1金钱 +100 收起 理由
漫反射 + 100

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-13 03:20 , Processed in 0.083482 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表