GetUserName(nil, Count);这句出了问题,请查看一下帮助,nil的地方应该是一个缓冲的名字,而不是nil

解决方案 »

  1.   

    function GetUser: string;
    var
      userName:pchar;
      Size: Cardinal;
    begin
      Size := 0;
      Getmem(userName,Size);  UserName := StrAlloc(size);  try
        if GetUserName(UserName, size) then
          Result := String(UserName)
        else
          Result := 'Unknown';
      finally
        StrDispose(UserName);
      end;
    end;
      

  2.   

    楼了一句:
    function GetUser: string;
    var
      userName:pchar;
      Size: Cardinal;
    begin
      Size := 0;
      Getmem(userName,Size);
      GetUserName(username,size);
      UserName := StrAlloc(size);  try
        if GetUserName(UserName, size) then
          Result := String(UserName)
        else
          Result := 'Unknown';
      finally
        StrDispose(UserName);
      end;
    end;
      

  3.   

    function GetUser: string;
    var
      UserName: PChar;
      Count: integer;
    begin
      Count := 0;
      GetUserName(nil, Cardinal(Count));
      UserName := StrAlloc(Count);
      try
        if GetUserName(UserName, Cardinal(Count)) then
          Result := String(UserName)
        else
          Result := 'Unknown';
      finally
        StrDispose(UserName);
      end;
    end;