Q&A

  • GetComputerName API사용하는데 뒤에 인자 어떻게 넣어주나요
var
  szPcName : array[0..255] of char;
  nSize : integer;
begin
   nSize := sizeof(szPcName);
   GetComputerName(szPcName, @nSize);
END

이렇게 함 될꺼 같은데 @nSize에서 오류가 발생 하네요
3  COMMENTS
  • Profile
    홍성락 2003.08.08 01:02
    GetComputerName의 마지막 인자가 unsigned 32-bit이구요
    integer은 signed 32-bit이므로
    2중에 하나를 해보세요

    1)
    var
      szPcName : array[0..255] of char;
      nSize : integer;
    begin
       nSize := sizeof(szPcName);
       GetComputerName(szPcName, DWORD(nSize));
    end;

    2)
    var
      szPcName : array[0..255] of char;
      nSize : DWORD;
    begin
       nSize := sizeof(szPcName);
       GetComputerName(szPcName, nSize);
    end;
    hsr/////////////////////////////////////////////////////
  • Profile
    KDDG_ZZOM 2003.08.07 21:45
    이렇게 해보세요...

    procedure TForm1.Button1Click(Sender: TObject);
    var
    NSize: integer;
    UserName, ComputerName: string;
    begin
    // 사용자명
    NSize := 25;
    SetLength(UserName,NSize);
    if GetUserName(PChar(UserName), NSize) then
       showmessage('User: '+UserName);

    // 컴퓨터명
    NSize := MAX_COMPUTERNAME_LENGTH+1;
    SetLength(ComputerName,NSize);
    if GetComputerName(PChar(ComputerName), NSize) then
       Showmessage('PC: '+ComputerName);
    end;

  • Profile
    박근영 2003.08.07 23:23
    GetComputerName(PChar(sPcName), nSize); <- 이곳에서
    'Types of actual and formal var parameters must be indentical'

    컴파일 error가 발생하네요..T.T

    그리고 두번재 인자(nSize)에는 포인터형이 들어가야 맞을것 같은데...
    갈켜주신 방법은 그냥 값을 넣었더라구요..