Autor Beitrag
Jukka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 107

Win XP Pro
Delphi 7
BeitragVerfasst: So 17.09.06 00:15 
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:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
typedef struct {
  unsigned char *data;
  int len;
  int width;
  int height;
} SpriteImage;

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
TSpriteImage = packed record
                  data : pointer;  // stringpointer gibt es soetwas?
                  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
Einloggen, um Attachments anzusehen!
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: So 17.09.06 00:36 
Also, zu deinem Record:
ausblenden 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

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
Grenzgaenger
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: So 17.09.06 10:47 
Achso, wieder was gelernt.
Ich dachte int=16Bit und Longint=32Bit.

_________________
"The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."