![]() |
Header Übersetzung -> Delphi
Hallo,
nun versuche ich mich gerade an einer Header Übersetzung und benötige Hilfe dabei.
Delphi-Quellcode:
Wie definiere ich so etwas denn in Delphi?
typedef struct _tag_HIIDC* HIIDC;
.... HIIDC IIDCAPI iidc_open( long index ); _tag_HIIDC ist nur in dieser Zeile zu finden. viele Grüße |
Re: Header Übersetzung -> Delphi
Musst noch suchen was HIIDC für ein record sein soll und wo es definiert ist.
Delphi-Quellcode:
type TTag_HIIDC = ^HIIDC;
function IIDC_OPEN(AIndex: Cardinal): HIIDC |
Re: Header Übersetzung -> Delphi
Danke für den Tip, hat mir weitergeholfen ! :-D
|
Re: Header Übersetzung -> Delphi
Hallo nochmal,
Eine weitere Frage habe ich
Code:
typedef struct{
long total_frame; long newest_frameindex; } IIDC_TRANSFERINFO;
Code:
Mein Ansatz sieht so aus :
long IIDCAPI iidc_gettransferinfo( long h, IIDC_TRANSFERINFO* info, long infobytes );
Delphi-Quellcode:
type
IIDC_TRANSFERINFO = record total_frame : LongInt; //Longint da -1 gesetzt werden könnte newest_frameindex : LongInt; //Longint da -1 gesetzt werden könnte end; function iidc_gettransferinfo(h: Cardinal;var Info : IIDC_TRANSFERINFO;InfoBytes : Cardinal) : Cardinal;stdcall; Da die Werte der Struktur nicht so sind wie Sie sein sollten frage ich sicherheitshalber nach, ob das so stimmt... viele Grüße! [edit=SirThornberry]delphi-tags durch c-tags ersetzt - Mfg, SirThornberry[/edit] |
Re: Header Übersetzung -> Delphi
Die exakte Darstellung des C-Codes wäre folgendes...
Delphi-Quellcode:
das übergebene ist ein Pointer auf einen Record
type
IIDC_TRANSFERINFO_P = ^IIDC_TRANSFERINFO; IIDC_TRANSFERINFO = record total_frame : LongInt; //Longint da -1 gesetzt werden könnte newest_frameindex : LongInt; //Longint da -1 gesetzt werden könnte end; function iidc_gettransferinfo(h: Cardinal;Info : IIDC_TRANSFERINFO_P;InfoBytes : Cardinal) : Cardinal;stdcall; |
Re: Header Übersetzung -> Delphi
Danke dir Tyrael Y.!
viele Grüße! |
Re: Header Übersetzung -> Delphi
var Info: IIDC_TRANSFERINFO is the same as Info: IIDC_TRANSFERINFO_P.
In Jedi translations we always use var instead of pointer unless nil is a valid value in which case type must be a pointer |
Re: Header Übersetzung -> Delphi
Hallo da bin ich schon wieder....
Code:
typedef struct
{ BOOL StdMode_Flag; struct { DWORD Buffer; } Image; struct { WORD UnitPos; } Ext; } GETIMAGEINFO, *pGETIMAGEINFO; Wie sieht denn das Delphi Konstrukt dazu aus? Manchmal ist ein solches Konstrukt auch in einem Union.
Code:
typedef struct
{ union { struct { DWORD Buffer; } Image; struct { WORD UnitPos; } Ext; }u; } GETIMAGEINFO, *pGETIMAGEINFO; Ich sehe hier den Wald vor lauter Bäumen nicht...Hoffe mir kann jamand helfen. Viele Grüße! [edit=SirThornberry]Delphi-Tags durch c-Tags ersetzt - Mfg, SirThornberry[/edit] |
Re: Header Übersetzung -> Delphi
Delphi-Quellcode:
/edit: forgot ; after and of image and ext record ;-)
type
GETIMAGEINFO = record StdMode_Flag: Boolean; Image: record Buffer: Cardinal; end; Ext: record UnitPos: WORD; end; end; TGetImageInfo = GETIMAGEINFO; PGetImageInfo = ^GETIMAGEINFO; |
Re: Header Übersetzung -> Delphi
Thank you Remko the first struct example works!
So much stuff i did not do yet..wohoo. best regardz |
Re: Header Übersetzung -> Delphi
Hallo,
ich brauche wieder mal Hilfe bei der Übersetzung. Der Union ist neu für mich und BYTE Abs:1<--- ist das hier ein Initialisierungswert, oder wie verstehe ich die Zahl?
Code:
Das ist mein Versuch :
typedef struct
{ DWORD Version; DWord FeatureID; //Steht für den Typ z.b. Balance union { struct { BYTE Abs:1; WORD Value; float Abs_Value; } Std; struct { BYTE Abs:1; BYTE On_Off:1; BYTE Auto_M:1; float Abs_Value; } Balance; BOOL Exec_Flag; BOOL PowerOn_Flag; } u; }ZCL_GETFEATUREVALUE,
Delphi-Quellcode:
Der Record wird an eine Funktion übergeben, die diesen je nach FeatureID "füllt" .
type
ZCL_GETFEATUREVALUE= record Version : DWord; FeatureID : DWord; u : record case integer of 0: ( std : record Abs : Byte; Value : Word; Abs_Value : Single; end; ); 1: ( Balance : record Abs : Byte; On_Off: Byte; Auto_M: Byte; Abs_Value : single; end; ); Exec_Flag : bool; PowerOn_Flag : bool; end; end; Ist dieser Funktion durch den Aufbau des Records "u" bekannt, welche Inneren Records mit Werten belegt werden müssen, oder wie kann ich das verstehen? Viele Grüße! |
Re: Header Übersetzung -> Delphi
Ich schiebe das Thema mal dezent hoch. :)
viele Grüße! |
Re: Header Übersetzung -> Delphi
Zitat:
![]() Aber 100% sicher bin ich mir nicht. Mit Unions habe ich noch nicht gearbeitet und habe keine Ahnung. |
Re: Header Übersetzung -> Delphi
Danke Dir Halinchen,
dann bekomme ich das mit Bitmasken dementsprechend schon hin. Na dann sitze ich wenigstens nicht alleine im Boot, was Unions anbetrifft. :) viele Grüße! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:55 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