Thema: Delphi Struct, Record

Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

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

Re: Struct, Record

  Alt 17. Jul 2005, 11:20
Moin mcusa,

wenn Du die Funktion in Delphi importierst, kannst Du das auf zwei Wegen machen:

Delphi-Quellcode:
// 1. Variante: C-Stil
function CheckMDB (const devaddr: BYTE;const dp: lpMDBEntry): Integer; stdcall; external MDB_DLL;
// 2. Variante: Borland-Stil
function CheckMDB (const devaddr: BYTE;var dp: lpMDBEntry ): Integer; stdcall; external MDB_DLL;
der Aufruf kann dann so erfolgen:

Delphi-Quellcode:
// 1.
var
  pmdb : lpMDBEntry;

begin
  pmdb := AllocMem(SizeOf(pmdb));
  try
    // Felder in pmdb, soweit erforderlich, initialisieren
    CheckMDB(15,pmbd);
    // mit dem Aufruf weiterverarbeiten
  finally
    FreeMem(pmdb,SizeOf(pmdb));
  end;
end;

// 2.
var
  mdb : MDBEntry;

begin
  // Felder in pmdb, soweit erforderlich, initialisieren
  CheckMDB(15,pmbd);
  // mit dem Aufruf weiterverarbeiten
end;
ausserdem solltest Du, sicherheitshalber, aus dem record einen packed record machen.
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