AGB  ·  Datenschutz  ·  Impressum  







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

C => Delphi: Referenzen?

Ein Thema von Daniel G · begonnen am 18. Aug 2005 · letzter Beitrag vom 20. Aug 2005
Antwort Antwort
Seite 1 von 2  1 2      
Daniel G
(Gast)

n/a Beiträge
 
#1

C => Delphi: Referenzen?

  Alt 18. Aug 2005, 22:52
Hallo alle zusammen!

Ich schlage mich ab und zu mal mit C/C++ - SC 'rum, den ich gerne nach Delphi übersetzen würde. Damit ich nicht jedesmal in der DP einen Thread eröffnen muss' und mich nicht immer und immer wieder mit dem C - Handbuch von C++ 6.0 AutorenEdition herumschlagen möchte, wollte ich mal fragen, ob jemand so etwas wie eine Referenz oder ähnliches im Stile von " 'X' in C/C++ entspricht 'Y' in Delphi, da...." kennt.

Wüsstet ihr da was?
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#2

Re: C => Delphi: Referenzen?

  Alt 18. Aug 2005, 23:01
Mit einer Referenz kann ich nicht direkt dienen. Aber in der Tutorial-Sektion von www.c-plusplus.de gibt es ein C++-Tutorial, das sich (laut Beschreibung) auf den Umstieg von Delphi spezialisiert... vielleicht ist das was für dich.

Ich würd dir jetzt nen Direktlink geben, aber die Seite ist grad nicht erreichbar... eventuell später mal nachschauen, oder morgen
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 08:19
ich hab mal eine kleine tabelle mit einigen zuordnungen gefunden.
Angehängte Dateien
Dateityp: zip delphi_-_vergleich_delphi_-_c_151.zip (2,7 KB, 24x aufgerufen)
Klaus E.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 09:28
Daniel, Referenzen gibt es so nicht in Delphi. Das was den Referenzen noch am ähnlichsten kommt, sind Delphi-Referenz durchsuchenabsolute Variablen.


Delphi-Quellcode:
var
  bla1: DWORD;
  bla2: DWORD absolute bla1;
Ansonsten wirst du wohl mit normalen Zeigern arbeiten müssen. Ob du Referenzen in einer DLL einfach über Pointer nachahmen kannst, weiß ich leider nicht. Müßte man sich das Disassemblat mal anschauen. Die Referenz in C++ ist jedenfalls ein Syntaxelement, welches bereits vom Compiler überprüft wird. Es muß also in den meisten Fällen bereits bei der Kompilation eine echte Variable hinter der Referenz existieren. Es handelt sich nur um einen anderen Namen für eine Variable, ergo einen Alias. In Delphi kannst du das nur so nachahmen wie oben gezeigt. Präprozessormakros gibt es nicht und Zeiger haben nicht die exakt gleichen Eigenschaften.
  Mit Zitat antworten Zitat
Benutzerbild von malo
malo

Registriert seit: 19. Sep 2004
2.115 Beiträge
 
#5

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 09:35
Olli, ich glaub, du hast da was falsch verstanden (oder war ich es?). Ich denke, er meint eine Art Funktionsreferenz, um C++ mit Delphi vergleichen zu können. Also ein Vergleich von C++-Funktionen und Delphi-Funktionen. Nicht das Sprachelement "referenzen"

Trotzdem hab ich jetzt auch wieder was gelernt, danke

edit: Wobei das schon ein Beispiel zu dem war, was er sucht
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 09:36
Zitat von Olli:
Daniel, Referenzen gibt es so nicht in Delphi. Das was den Referenzen noch am ähnlichsten kommt, sind Delphi-Referenz durchsuchenabsolute Variablen.
ich glaube, er hat nicht solche ^^^ Referenzen gesucht.
Eher wohl ein Tutorial (oder so), wie man von C/C++ zu Delphi kommt.

/edit: da war wohl einer schneller, aber einen roten kasten hab ich nicht gesehen...

gruessle
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#7

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 09:48
Zitat von malo:
Olli, ich glaub, du hast da was falsch verstanden (oder war ich es?). Ich denke, er meint eine Art Funktionsreferenz, um C++ mit Delphi vergleichen zu können. Also ein Vergleich von C++-Funktionen und Delphi-Funktionen. Nicht das Sprachelement "referenzen"
... ... echt?

Zitat von malo:
Trotzdem hab ich jetzt auch wieder was gelernt, danke
... gern wieder.

Dann will ich nochmal kurz. Von C nach Delphi ist einfach, weil es in C keine Klassen gibt. Man muß also nur die Syntaxelemente beherrschen. Referenzhandbücher gibt es bspw. bei Terrashop sehr preiswert. Von C++ nach Delphi ist schwieriger. Bspw. verhalten sich Klassen in C++, wenn man sie nicht über den new-Operator erstellt, wie Stackvariablen. Das kann man in Delphi nur über Krücken mit Interfaces nachstellen. ansonsten kann ich "C++ Kurz und Gut" von O'Reilly und "C/C++ Ge-packt" von mitp empfehlen.

Auch in meinem DLL-Tut finden sich Hinweise zur Übersetzung der PSDK-Header. Beispielsweise zu Unions in Delphi usw.
  Mit Zitat antworten Zitat
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#8

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 11:14
Zitat von RavenIV:
ich hab mal eine kleine tabelle mit einigen zuordnungen gefunden.
naja das ist nicht unbedingt die beste referenz, da haben sich doch einige fehler eingeschlichen:

Code:
Inc(i, 1)
-
Code:
i++
wieso Inc(i, 1) und nicht einfach Inc(i)?

Code:
Edit1.Text
-
Code:
Edit1->Text
hier wird überhaupt nicht klar, dass der "->" - operator schon einen zeiger enthält; "->" ist sozusagen die kurzform für "(*Edit).Text".

Code:
var buffer : array[0..100] Of Char;
-
Code:
char buffer[100];
das Delphi-array ist 101 bytes gross und geht vom Index 0 bis Index 100, das C-array ist 100 bytes gross udn geht von Index 0 bis Index 99.

Code:
Case i Of

  0: begin
     end;
  1: begin
     end;
  else
     begin
     end;

end;
-
Code:
switch i {

  case 0: {
          }
  case 1: {
          }
  default:
          {
          }

}
wenn man mit dem C-Switch die gleiche funktionalität wie mit dem Delphi-Case erreichen will, fehlt jeweils noch ein break;, also so:
Code:
switch i {

  case 0: { 
          //...
          break;
          }
  case 1: {
          //...
          break;
          }
  default:
          {
          //...
          }

}
, weil bei einem switch in C werden ab dem "gefundenen" case alle anderen cases auch durchlaufe, es sei denn man verlässt den switch-block mit einem break.

und btw in Delphi schreibt man Schlüsselwörter (also die, die vom Compiler in der Standardfarbeinstellung Dunkelblau, in der Classic-Einstellung Weiss markiert werden) im Allgemeinen klein.

so das wars erstmal.

ach nein doch nicht: hier hab ich noch ein umsteigertutorial:
http://members.fortunecity.com/dumbf...s/__HEADER.HTM
ist glaub ich original von www.c-plusplus.de , aber die seite ist im moment down.
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#9

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 20:13
Zitat von Olli:
... ... echt?
Total! Aber trotzdem habe ich was gelernt

@All: Vielen Dank für die Tipps, ich werde sie mir ansehen
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#10

Re: C => Delphi: Referenzen?

  Alt 19. Aug 2005, 22:31
Zitat von BlackJack:
hier wird überhaupt nicht klar, dass der "->" - operator schon einen zeiger enthält; "->" ist sozusagen die kurzform für "(*Edit).Text".
Wenn wir schon Korinthen kacken, können wir das auch richtig tun
Hätte ich in C++ meine Klasse so:
Code:
SomeClass blubb(parameter, fuer, konstruktor);
wäre mein Objekct auf dem Stack und ich müsste mit blubb.member auf die Member des Objektes zugreifen. Erst bei
Code:
SomeClass *blubb = new SomeClass(parameter, fuer, konstruktor);
ist mein Objekt auf dem heap und als Pointer muss ich beim Zugriff erst dereferenzieren, oder eben -> benutzen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:40 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