Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Von C nach Delphi
Jukka - So 17.09.06 00:15
Titel: Von C nach Delphi
Hoallo,
vorab ich weiß nicht ob das das richtige forum dafür ist.
Ichhabe hei ein par in c geschriebene funktionen und würde diese gerne in delphi nutzen. jedoch komm ich dort an grenzen, undwzwar schon bei den typen:
Quelltext
1: 2: 3: 4: 5: 6:
| typedef struct { unsigned char *data; int len; int width; int height; } SpriteImage; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| TSpriteImage = packed record data : pointer; len : Integer; width : Integer; height : Integer; end; |
da gibt es viel soetwas könnte mir da jemand helfen?
Es handelt sich um funktionen zum auslesen von sprites ichhab die c und h datei mal angehängt, wäre echt super wenn da jemand helfen kann auch wenn es nur ansätze sind
Martok - So 17.09.06 00:36
Also, zu deinem Record:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| SpriteImage = record data:PChar; len, width, height:SmallInt; end; |
Zu den Typen:
unsigned char* ist ein Zeiger auf ein (vorzeichenloses)
Zeichen. Damit kein Stringpointer, wie du es nanntest, sondern ein Zeichen-Pointer. So heißt er dann auch: PChar-Pointer to Char
int ist ein 16bit-Integer mit Vorzeichen (-32768..32767). Dieser heißt in Delphi Smallint. Der Integer ist ein 32Bit Datentyp(-2147483648..2147483647).
Um sowas übersetzen zu können, muss man unbedingt wissen, wie die Datentypen aufgebaut sind, und andersherum welcher Aufbau wie heißt.
Das Archiv guck ich mir nicht mehr an, bin zu müde^^
Martok
Delete - So 17.09.06 02:18
hallo juca,
der pointer auf zeichen wird in der tat als ^char oder als type pchar = ^char abgekürzt.
@martok, der integer ist in c genauso definiert wie in pascal, als generisches format das die arbeitspreite der CPU am besten wiedergibt, ist übrigens in fortran genauso... daher kannst du einen c int, nicht mit einen smallint in pascal gleichsetzen, sondern musst auf den jeweiligen C compiler achten, der je nach hersteller und version, den int unterschiedlich umsetzt. da hilft dir auch kein .h include weiter. dies nur so zur info.
Martok - So 17.09.06 10:47
Achso, wieder was gelernt.
Ich dachte int=16Bit und Longint=32Bit.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!