Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Gleiche Funktionen->anderes Ergebnis (macadressen zä

  Alt 11. Jan 2005, 14:29
Hab den Fehler gefunden.

Der Rückgabewert von "NetBios" war 7 was so viel heißt wie "illegal buffer address". Trotz dessen das der Buffer verwendet wurde und laut debugger nicht weg optimiert wurde hat es nicht funktioniert. Deswegen hab ich einfach aus "TLanaEnum" ein "^TLanaEnum" gemacht und selbst mit "new" speicher dafür angefordert. Und siehe da - es funktioniert.

abgeänderter Source der Funktion:
Delphi-Quellcode:
var AdapterList: ^TLanaEnum;
    NCB: TNCB;
begin
  new(AdapterList);
  FillChar(NCB, SizeOf(NCB), 0);
  NCB.ncb_command := Char(NCBENUM);
  NCB.ncb_buffer := PChar(AdapterList);
  NCB.ncb_length := SizeOf(AdapterList^);
  Netbios(@NCB);
  Result := Byte(AdapterList.length);
  dispose(AdapterList);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat