感觉好离奇,在D2009运行后,结果是Hello World
{问题:该如何解决呢?}
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);  private    { Private declarations }
  public    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}function GetComputerNameX: String ;
var
  i: Cardinal;
  cBuff: PChar;
begin
  GetMem(cBuff, 128);
  i := 128;
  GetComputerName(cBuff, i);
  Result := StrPas(cBuff);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  edit1.Text := GetComputerNameX;
end;end.

解决方案 »

  1.   

    “Hello World ”!!!!,太牛了 
      

  2.   

    估计你的计算机名就叫Hello World,呵呵o(∩_∩)o...
      

  3.   

    {加上注明:机器名不是:Hello World}
      

  4.   

    我的可以得到计算机名:LENOVO-T400
    程序和你写的一样,或者说是拷贝你的程序
      

  5.   

    function GetComputerNameX: String ;
    var
      i: Cardinal;
      cBuff: PChar;
    begin
      GetMem(cBuff, 128);
      i := 128;
      GetComputerName(cBuff, i);
      Result := StrPas(cBuff);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    edit1.Text := GetComputerNameX;end;
      

  6.   

    应该是你的GetComputerName调用失败,没有返回真正的机器名。而GetMem返回的内存又没有清空。 请问你用的是什么系统?是不是vista? 另外:建议你修改你的GetComputerNameX函数如下: function GetComputerNameX: String ;
    var
      i: Cardinal;
      cBuff: PChar;
    begin
      GetMem(cBuff, 128);
      ZeroMemory(cBuff, 128);  //清空内存
      i := 128;
      win32check(GetComputerName(cBuff, i)); //使用win32check来检查GetComputerName是否正常执行. 其实这个i返回值也是有意义的
      Result := StrPas(cBuff);
    end;
      

  7.   


    {谢谢哥们,我用的是XP-SP3的系统,修改后还是没有返回真正的机器名.}
      

  8.   

    系统,ide和你一样,直接复制你的代码,能正确得到计算机名.
      

  9.   


    {南果梨,你也是D2009的IDE吗,不是吧,你可以得到正确的到计算机名?}
      

  10.   


    CodeGear™ Delphi® 2009  Version 12.0.3300.19037 Copyright © 2008 Embarcadero Technologies, Inc. All Rights Reserved.
    D2009,XP SP2运行结果正确
      

  11.   

    路过!虽然我不是学Delphi,不过很明显你是上次运行了一个Hello World程序,这次还是运行上次的项目。
      

  12.   

    {我的是升级到Update2,好像Update3还在测试呢,哥们,你的怎么是Version 12.0.3300.19037}CodeGear™ Delphi® 2009  Version 12.0.3210.17555 Copyright © 2008 Embarcadero Technologies, Inc. All Rights Reserved.
      

  13.   

    我的也是delphi2009,XP SP3,得到的结果正确的啊。
      

  14.   


    这个问题应该跟系统没有关系,更何况是SP2 SP3
      

  15.   

    xp sp3,rad studio 2009 update2