帮我看一下,下面的代码有什么不对,
我运行的时候提示访问内存出错,就在转换时。var i:pchar;
    s:cardinal ;
    str:string ;
begin
    s:=100;
    if getcomputername(i,s) then
        str := StrPas(i);
end;

解决方案 »

  1.   

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

  2.   

    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);
    end;
      

  3.   

    lizhu (丽珠):
    你上一个贴子,我就给了你答案,可惜后来才发现,你已经结贴了
      

  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;