![]() |
C Funktion -> Delphi - Problem mit Array
Hoi,
habe mal wieder ein Übersetzungsproblem ... Funktion laut Dll Headerdatei
Code:
Aufruf aus einem Beispiel (C)
EIB7_ERR EIB7ReadFIFOData(EIB7_HANDLE eib, void* data, unsigned long cnt, unsigned long* entries, long timeout);
Code:
meine Übersetzung
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;
Delphi-Quellcode:
mein Aufruf
function EIB7ReadFIFOData(eib:EIB7_HANDLE; data:Pointer; cnt:Cardinal; entries:PCardinal; timeout:Integer): EIB7_ERR ; cdecl; external 'eib7.dll' ;
Delphi-Quellcode:
wäre das grundsätzlich so OK, mit der array definition + übergabe bin ich unsicher ? - denn bevor ich weitermache sollten die grundsachen stimmen ...
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 ; cya |
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 :))
|
Re: C Funktion -> Delphi - Problem mit Array
hoi,
wenn ich die Aufrufkonvention von cdecl nach stdcall ändere bekomm ich ne Zugriffsverletzung. Zitat:
EDIT: die Zugriffsverletzung kommt woanders her ... Ich schau noch mal genauer nach ... cya |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz