本帖最后由 虫子樱桃 于 2013-1-18 17:07 编辑
翻译:虫子樱桃
原文链接:http://www.autoitscript.com/autoit3/udfs/UDF_Standards.htm
此页内容对如何提交AutoIt自定义函数做了简单的介绍,如果代码依据以下标准进行提交并且包含以下两个文件,那么对我而言将是莫大的帮助。这两个文件一般而言,是这样的:
Catagory.au3 (在#include语句中引用的文件名)
Functionname.au3 (在帮助文件中使用的例子文件名称)
值得说明的是,我们只会收录有普遍易用性的用户自定义函数。但是如果您还是想让您的自定义函数被收录:-),那么:
依照以下对于文件的说明.
确保您的自定义函数在使用“-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6”参数运行AU3Check时,没有出现错误;
确保您的自定义函数的编码是整齐的;
您可以通过论坛消息或者邮件发送包含自定义函数和例子的zip文件给我(GaryFrost 或者 "Gary@ autoitscript.com")
对于那些想查阅类库/模版文件的童鞋:创建一个模版程序
Thanks,
Gary
用户自定义函数编码标准
函数名称
所有函数名称必须以一个下划线'_'开头
函数名中的每个单词首字母必须大写(注:原文中未提明是首字母还是整个单词,根据使用习惯,这里使用首字母)。
函数名称的首单词需使用一般的分类词如:“Date”, “String”, “Array”, “Network”,等开头以描述函数的功能。如果分类词较长,如“Windows”,那么可以使用该词的缩略词或常用的习惯缩写(例如,“Win”是Windows的习惯缩写,“Net”则是“NetWork”的缩写词)
所有函数命名规范必须严格遵守AutoIt现有内置函数的命名规范
变量名称
在美元符号($)后的字母应被用来指定函数中该变量在函数中被引用的数据类型。下面的列表列出的是不同字母前缀及其不同的含义。
$a<其他字母> - 数组 (紧接着的这字母描述的含义,请参考下面的其他字母前缀说明)
$b - 二进制数据库
$h - 文件或窗口句柄
$i - 整数
$f - 布尔值(True或者False)
$n - 浮点数
$s - 字符串
$v - 变量 (未知类型/变量类型数据)
余下部分的变量名称使用大写的单词来描述变量的作用。类似“$iC”的变量名称是不可被接受的。而"$aiWeekDayNames" 或者 "$iCounter" 这样的变量名将会更有意义。
所有变量在第一次使用之前必须在UDF的开头使用local进行申明。“Dim”和“Global”关键字在UDF中使用是会引起歧义的,因此需要避免在UDF中使用这两个关键字。
当函数中有该变量数据在被更新后需要返回时,所有变量名应该使用Byref关键字,通过函数参数进传递。
参数
参数命名也必须使用与变量名一样的命名规则
每个参数都必须检查参数的有效性并返回适当的错误代码
如果参数被用做传递数据回调用脚本 (ByRef),那么函数的说明文档必须明确地写出该情况。
函数说明文档
所有的函数必须在函数的顶部附上相关的函数说明文档。以下是函数说明文档的格式:
; #FUNCTION# ;===============================================================================
;
; Name...........: _DateDiff
; Description ...: Returns the difference between 2 dates, expressed in the type requested
; Syntax.........: _DateDiff($sType, $sStartDate, $sEndDate)
; Parameters ....: $sType - One of the following:
; |D = Difference in days between the given dates
; |M = Difference in months between the given dates
; |Y = Difference in years between the given dates
; |w = Difference in Weeks between the given dates
; |h = Difference in hours between the given dates
; |n = Difference in minutes between the given dates
; |s = Difference in seconds between the given dates
; $sStartDate - Input Start date in the format "YYYY/MM/DD[ HH:MM:SS]"
; $sEndDate - Input End date in the format "YYYY/MM/DD[ HH:MM:SS]"
; Return values .: Success - Difference between the 2 dates.
; Failure - Returns 0 and Sets @Error:
; |0 - No error.
; |1 - Invalid $sType
; |2 - Invalid $sStartDate
; |3 - Invalid $sEndDate
; Author ........: Jos van der Zande
; Modified.......:
; Remarks .......:
; Related .......: _DateAdd
; Link ..........;
; Example .......; Yes
;
; ;==========================================================================================
Func _DateDiff($sType, $sStartDate, $sEndDate)
.
函数帮助文件文档
所有提交的UDF函数必须包含一个除UDF外的额外文件以便于收入AutoIt帮助文件中。
(例子:)
#include <Date.au3>
; Calculated the number of seconds since EPOCH (1970/01/01 00:00:00)
$iDateCalc = _DateDiff( 's',"1970/01/01 00:00:00",_NowCalc())
MsgBox( 4096, "", "Number of seconds since EPOCH: " & $iDateCalc )
; Calculated the number of Hours this year
$iDateCalc = _DateDiff( 'h',@YEAR & "/01/01 00:00:00",_NowCalc())
MsgBox( 4096, "", "Number of Hours this year: " & $iDateCalc )
|