Thema: Delphi Was passiert hier?

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Was passiert hier?

  Alt 30. Nov 2003, 16:04
Moin Lefko,

ich meinte die API Funktion
Die Kapselung kennt D5 nicht.


Probier das hier mal aus.

Delphi-Quellcode:
var
  pBuf : PChar;
  dwLen : DWORD;

begin
  // Mit Hilfe der Funktion die erforderliche Buffergrösse ermitteln
  pBuf := nil;
  dwLen := 0;
  dwLen := GetEnvironmentVariable('COMPUTERNAME',pBuf,dwLen);
  inc(dwLen);
  // und dann erst auslesen
  pBuf := AllocMem(dwLen);
  try
    if GetEnvironmentVariable('COMPUTERNAME',pBuf,dwLen) = 0 then begin
      ShowMessage(SysErrorMessage(GetLastError));
    end else begin
      ShowMessage(trim(pBuf));
    end;
  finally
    FreeMem(pBuf,dwLen);
  end;
end;
Wie in C üblich gibt die Funktion ihren Rückgabewert in einen Speicherbereich aus, den man als Pointer (in diesem Falle Pointer auf Character) übergibt, und der vorher in der erforderlichen Grösse reserviert werden muss. (Netxxx Funktionen unter NT sind hier eine Ausnahme).
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat