Einzelnen Beitrag anzeigen

peter21

Registriert seit: 24. Apr 2007
Ort: Golm
18 Beiträge
 
Delphi 4 Standard
 
#6

Re: Delphi: Pointer und Speicher

  Alt 7. Okt 2007, 11:52
Hallo Dezipaitor, hallo Muetze1,

vielen Dank für Eure Antwort. Ich werde mich mal mit FastMM auseinandersetzen.

Mir ist noch folgendes aufgefallen: In einer neu in das Programm eingebauten Routinenen zum Auslesen eines USB-Messwertloggers werden die Daten folgendermaßen abgerufen:

Delphi-Quellcode:
...
interface

...

var
...
  DataBuffer: ARRAY[0..7] OF LongInt;
...

implementation

{$R *.DFM}
PROCEDURE StartDevice; stdcall; external 'K8047d.dll';
PROCEDURE StopDevice; stdcall; external 'K8047d.dll';
PROCEDURE ReadData(Buffer:Pointer); stdcall; external 'K8047d.dll';

...

procedure TForm1.FormCreate(Sender: TObject);
begin
  StartDevice;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  StopDevice;
end;

procedure auslesen(Sender: TObject);
var
  p:pointer;
  i:integer;
  s:string;
begin
  p:=@DataBuffer;
  ReadData(p);
  s:='';
  for i:=0 to 5 do s:=s +inttostr(DataBuffer[i])+chr(9);
  ....
end;
Ich weis nicht, ob in diesem Fall new(p) und dispose (p) irgendwo in der externen dll versteckt sind. Oder sind diese Prozeduren in diesem Fall nicht notwendig?
Müßte p nicht als ^DataBuffer definiert sein (am besten global)? Und dann hinter StartDevice New(p) und hinter StopDevice Dispose(p) eingefügt werden?

Ich werde mal in der Zwischenzeit diese Procedure ausklammern und gucken, was passiert.

Peter
  Mit Zitat antworten Zitat