![]() |
Problem beim übersetzen von C-Header
Hallo,
ich bin grade dabei eine DLL in mein Delphi Projekt einzubinden. Dafür habe ich die Header Datei von C in Pascal übersetzt. Bin mir aber an einer Stelle nicht sicher ob ich es richtig gemacht habe, vielleicht kann mir einer dabei helfen. Hier der originale C Code aus der Header:
Code:
und hier die gleiche Stelle in Delphi
typedef void ( CAMAPI *Cam_AsyncCallback )
( void* userPtr, // User defined unsigned long userData, // User defined Cam_Err errcode, // Error code unsigned long flags // Combination of flags (see Cam_qcCallbackFlags) );
Delphi-Quellcode:
type Cam_AsyncCallback = procedure(userPtr:Pointer;userData:LongInt;errcode:Cam_Err;flags:LongInt); stdcall; Wäre für ein Feedback dankbar. |
AW: Problem beim übersetzen von C-Header
Hi,
was mir auffällt ist zum einen
Code:
das würde ich eher mit
unsigned long flags
Delphi-Quellcode:
übersetzen.
flags: ULong
Außerdem ist hier noch nicht klar, was der Typ
Code:
sein soll.
Cam_Err
Und ich bin mir auch nicht sicher, wie das mit
Delphi-Quellcode:
bei/anstatt
cdecl
Delphi-Quellcode:
is. Evtl. braucht man das hier?
stdcall
Gruß, Chris |
AW: Problem beim übersetzen von C-Header
Hallo Chris,
ich hab natürlich nicht alles gepostet Cam_Err ist ein eigener Typ den ich oben definiert habe. Im Internet hab ich gelesen dass unsigned long in Pascal LongInt oder Cardinal ist. Bei den anderen Funktionen rufe ich auch stdcall auf, das ist so vorgegeben in der Beschreibung. Ich wollte nur wissen ob ich die Struktur richtig verstanden habe. Es handelt sich meiner Meinung nach um einen Zeiger auf eine Funktion oder? Da ich so etwas noch nie in Delphi benutz habe, bin ich mir hierbei etwas unsicher. |
AW: Problem beim übersetzen von C-Header
unsigned...=Cardinal
Da ist nichts mit "oder" Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 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