外部函数:是用其他语言编写的、存储在动态链接库中的函数。
1 说明外部函数
说明外部函数的步骤:
1) 首先打开要说明外部函数的对象;
2) 在script窗口中,从第一个下拉列表框选择declare,从第二个下拉列表框选择global external functions或local external functions;
3) 在script窗口中输入说明外部函数的语句;
4) 保存对象;
说明外部函数的语法:
{ access} FUNCTION returndatatype name ({{ref} datatype1 arg1,…,{ref} datatypen argn } ) library “libname”
alias for “extname”
说明外部过程的语法:
{ access} SUBROUTINE name ({{ref} datatype1 arg1,…,{ref} datatypen argn } ) library “libname”
alias for “extname”
2 外部函数调用举例
1、得到用户名信息:
1.1按钮的Clicked:
Long ll_RTN
String ls_UserName
Long ll_BufferLen
ll_BufferLen = MAX_LENGTH
ls_UserName = Space(MAX_LENGTH)
//获取当前系统用户名称
ll_RTN = GetUserName (ls_UserName, ll_BufferLen)
If ll_RTN <> 0 Then
MessageBox("提示信息", "当前系统用户名称为:" + Trim(ls_UserName))
Else
MessageBox("提示信息", "函数调用失败!")
End If
1.2实例变量:CONSTANT Long MAX_LENGTH = 256
1.3外部函数:
FUNCTION Long GetUserName ( REF String lpBuffer, REF Long nSize) LIBRARY "advapi32.dll" ALIAS FOR "GetUserNameA"
2、得到计算机名称:
2.1按钮的Clicked:
//获取计算机名称
Long ll_RTN
String ls_ComputerName
Long ll_BufferLen
ll_BufferLen = MAX_COMPUTERNAME_LENGTH + 225
ls_ComputerName = Space(MAX_COMPUTERNAME_LENGTH + 225)
ll_RTN = GetComputerName (ls_ComputerName, ll_BufferLen)
If ll_RTN <> 0 Then
MessageBox("提示信息", "计算机名称为:" + Trim(ls_ComputerName))
Else
MessageBox("提示信息", "函数调用失败!")
End If
2.2实例变量:CONSTANT Long MAX_COMPUTERNAME_LENGTH = 31
2.3外部函数:
FUNCTION Long GetComputerName ( REF String lpBuffer, REF Long nSize) LIBRARY "kernel32" ALIAS FOR "GetComputerNameA"