AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Umbau C nach Delphi

Ein Thema von yörsch · begonnen am 12. Jan 2007 · letzter Beitrag vom 13. Jan 2007
Antwort Antwort
Benutzerbild von yörsch
yörsch

Registriert seit: 10. Jan 2007
Ort: Lampertheim
206 Beiträge
 
Delphi XE2 Architect
 
#1

Umbau C nach Delphi

  Alt 12. Jan 2007, 11:51
Hai Zusammen,

Kann damit einer anfangen? Ich bin eindeutig bisser in Delphi...

Code:
char * pBuffer = (char*) new char[ iSizeOfBufferToSupply ];
Meine Übersetzung
Delphi-Quellcode:
pBuffer : array of ^CHAR   ;
iSizeOfBufferToSupply : Integer;
...
SetLength(pBuffer,iSizeOfBufferToSupply );
und Noch einen
Code:
struct flag {
  unsigned fFlipVert;
  unsigned fFlipHori;
  unsigned fDibWidth;
  unsigned fSyncStamp;
}
Meine Übersetzung
Delphi-Quellcode:
 flag = packed Record
  fFlipVert : Byte;
  fFlipHori : Byte;
  fDibWidth : Byte;
  fSyncStamp: Byte;
 end;

Gruß

Jörg
Jörg
have FUN
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Umbau C nach Delphi

  Alt 12. Jan 2007, 11:58
Das lässt sich relativ elegant mit einem AnsiString lösen:
Delphi-Quellcode:
var
   buffer : Ansistring;
   pbuffer : PChar;
begin
   SetLength(buffer, iSizeOfBufferToSupply);
   pbuffer := PChar(buffer); // Zeiger auf 1. Byte
Der Vorteil in Vergleich zu new & dispose bzw. GetMem & FreeMem ist, dass du dir
über die Freigabe des Speichers keine Gedanken machen musst.
Andreas
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Umbau C nach Delphi

  Alt 12. Jan 2007, 12:46
Zitat von yörsch:
Code:
struct flag {
  unsigned fFlipVert;
  unsigned fFlipHori;
  unsigned fDibWidth;
  unsigned fSyncStamp;
}
Meine Übersetzung
Delphi-Quellcode:
 flag = packed Record
  fFlipVert : Byte;
  fFlipHori : Byte;
  fDibWidth : Byte;
  fSyncStamp: Byte;
 end;
Hi,
ich würde denken, dass deine zweite Übersetzung so nicht stimmt. Bei mir ist es dann mit C auch nicht soweit her, aber wenn ich mich nicht irre, wird ein einfaches unsigned wie ein unsigned int behandelt, es wird also die Standardgröße auf deinem System verwendet.
Entsprechend solltest Du es eher mit es eher mit

Delphi-Quellcode:
 flag = packed Record
  fFlipVert : Integer;
  fFlipHori : Integer;
  fDibWidth : Integer;
  fSyncStamp: Integer;
 end;
übersetzen.
  Mit Zitat antworten Zitat
Benutzerbild von yörsch
yörsch

Registriert seit: 10. Jan 2007
Ort: Lampertheim
206 Beiträge
 
Delphi XE2 Architect
 
#4

Re: Umbau C nach Delphi

  Alt 12. Jan 2007, 13:15
Erstmal DANKE für Eure Antworten
Jörg
have FUN
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Umbau C nach Delphi

  Alt 13. Jan 2007, 01:04
Zitat von Der_Unwissende:
Zitat von yörsch:
Hi,
ich würde denken, dass deine zweite Übersetzung so nicht stimmt. Bei mir ist es dann mit C auch nicht soweit her, aber wenn ich mich nicht irre, wird ein einfaches unsigned wie ein unsigned int behandelt, es wird also die Standardgröße auf deinem System verwendet.
Soweit sehe ich das auch. Aber:

Zitat von Der_Unwissende:
Entsprechend solltest Du es eher mit es eher mit

Delphi-Quellcode:
 flag = packed Record
  fFlipVert : Integer;
  fFlipHori : Integer;
  fDibWidth : Integer;
  fSyncStamp: Integer;
 end;
übersetzen.
Wieso hier Integer? Wir reden doch von vorzeichenlosen Typen, hier wäre also nicht Integer, sondern Cardinal korrekt.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#6

Re: Umbau C nach Delphi

  Alt 13. Jan 2007, 11:03
Zitat von Chewie:
Wieso hier Integer? Wir reden doch von vorzeichenlosen Typen, hier wäre also nicht Integer, sondern Cardinal korrekt.

Hast natürlich recht, war ja unsigned, hüstel.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz