学生信息管理系统问题(一)

Private Sub Form_Load()
    Dim sBuffer As String
    Dim lSize As Long

    sBuffer = Space$(255)
    lSize = Len(sBuffer)
    Call GetUserName(sBuffer, lSize)                           '防止存在上一次输入的用户名
    'API中字符串作参数,需要提前确定大小                        '但为啥GetUserName
    If lSize > 0 Then
        txtUserName.Text = ""
   
    Else
        txtUserName.Text = vbNullString '没有字符串
    End If

       这是在学生信息管理系统的frmLogin窗体中的一段代码,开始看这段代码时,真是寸步难行,不过现在,我似乎对这段代码的功能有点理解,先把一些重要部分做一点解释,理解不当处,还请大家及时指正。

       Space()函数在这里生成一个字符串,字符串的内容为空格,长度为指定的长度

       Space()返回特定数目的空格的Variant型或String型

       Space返回Variant类型
       Space$返回String类型

              后者速度比前者快      

              通过Len()函数获得该字符串的长度

                

                那么GetUserName在这里到底有什么作用呢?

                  从网上查到: 随着系统安全性的加强,每个系统里越来越多不同的帐号登录。                                     假如你正在开发一个上网安全软件,让不同的用户有不同的上网                                     权限,这样就需要识别当前的用户是什么帐号登录了,然后再作                                     出权限分配。还有出错时,也需要对当前帐号进行记录下来,因                                     为不同的帐号有不同的权限,有些磁盘是不允许操作的。面对这                                     些需求,就需要使用函数GetUserName。     

              现在,我们可能对以上这段文字不是很理解,但是没关系,不影响我们明白

              GetUserName()的作用。

              该函数有两个参数

参数名称 参数类型                                                                                                                 作用
 lpBuffer String 一个字符串缓冲区,预先初始化成由nSize指定的长度。它将用于容纳用户名,是获取名称缓冲区。  
 nSize Long 初始化成lpBuffer的长度。返回以后,它会包含载入lpBuffer的字符数量  ,是缓冲区的大小和返回帐号的大小。

               sBuffer 和 lSize 分别为IpBuffer 和nSize的实参

              当缓冲区的大小>0时( If lSize > 0)时,......

              否则,......vbNullString          

               vbNullString: 值为 0 的字符串
                                    用来调用外部过程;与长度为零的字符串 ("") 不同
                 

你可能感兴趣的:(space,GetUserName)