Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi C Funktion -> Delphi - Problem mit Array (https://www.delphipraxis.net/139195-c-funktion-delphi-problem-mit-array.html)

soulies 25. Aug 2009 13:24


C Funktion -> Delphi - Problem mit Array
 
Hoi,

habe mal wieder ein Übersetzungsproblem ...

Funktion laut Dll Headerdatei
Code:
EIB7_ERR EIB7ReadFIFOData(EIB7_HANDLE eib, void* data, unsigned long cnt, unsigned long* entries, long timeout);
Aufruf aus einem Beispiel (C)
Code:
error = EIB7ReadFIFOData(eib, udp_data, 1, &entries, 0);

mit

typedef int EIB7_HANDLE;

EIB7_ERR error;
EIB7_HANDLE eib;
unsigned char udp_data[200];
unsigned long entries;
meine Übersetzung
Delphi-Quellcode:
function EIB7ReadFIFOData(eib:EIB7_HANDLE; data:Pointer; cnt:Cardinal; entries:PCardinal; timeout:Integer): EIB7_ERR ; cdecl; external 'eib7.dll' ;
mein Aufruf
Delphi-Quellcode:
function TEIB.FIFO_Messdaten_Lesen:Cardinal ;
begin
  Err := EIB7ReadFIFOData(EIB_Handle, @UDP_Daten, 1, @result ,0) ;
end;

mit

Err : EIB7_ERR ;
EIB_Handle : Integer ;
udp_daten : array[0..199] of byte ;
wäre das grundsätzlich so OK, mit der array definition + übergabe bin ich unsicher ? - denn bevor ich weitermache sollten die grundsachen stimmen ...

cya

Medium 25. Aug 2009 14:29

Re: C Funktion -> Delphi - Problem mit Array
 
Sollte wenn ich mich nicht böse verguckt hab passen. Nur bei der Aufrufkonvention: Meistens findet sich hier "stdcall", bist du dir bei "cdecl" sicher, bzw. ist das so dokumentiert? (Frage nicht ich, das könntest du dich fragen :))

soulies 25. Aug 2009 14:51

Re: C Funktion -> Delphi - Problem mit Array
 
hoi,

wenn ich die Aufrufkonvention von cdecl nach stdcall ändere bekomm ich ne Zugriffsverletzung.

Zitat:

...ist das so dokumentiert?
dokumentiert ist leider nichts


EDIT: die Zugriffsverletzung kommt woanders her ...
Ich schau noch mal genauer nach ...


cya


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:02 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz