var i:pchar;
    s:cardinal ;
    str:string ;
begin
    s:=100;
    if getcomputername(i,s) then
        str := StrPas(i);

解决方案 »

  1.   

    var i:pchar;
        s:cardinal ;
        str:string ;
    begin
        s:=100;
        if getcomputername(i,s) then
            str := i;
      

  2.   

    不是吧??發了三個貼??begin
     SetLength(str, 1000);
     GetComputername(s, 1000);
     str := pchar(str);
      

  3.   

    在msdn:
    BOOL GetComputerName(
      LPTSTR lpBuffer,  // computer name
      LPDWORD lpnSize   // size of name buffer
    );第一個參數是放緩衝區的, 第二個是放接收緩衝區大小的, 你參數都錯了, 然後, 指針i又沒分配內存!!!
      
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      Size: DWORD;
      LocalMachine: array [0..MAX_COMPUTERNAME_LENGTH] of char;
      Str:String;
    begin    Size := Sizeof(LocalMachine);
        if GetComputerName(LocalMachine, Size)   then
          Str:=strpas(LocalMachine);
          showmessage(str);end;
      

  5.   

    procedure TForm1.Button1Click(Sender: TObject);
    var i:pchar;
        s:Dword ;
        str:string ;
    begin
        s:=100;
        getmem(i,101);
        if getcomputername(i,s) then
            str := StrPas(i);
        form1.caption:=str;
    end;
    你竟然发了许多:o
      

  6.   

    var str: string;
    begin 
    SetLength(str, 1000);
     GetComputername(s, 1000);
     str := pchar(str);end;