Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C => Delphi: Referenzen? (https://www.delphipraxis.net/51792-c-%3D-delphi-referenzen.html)

Daniel G 18. Aug 2005 21:52


C => Delphi: Referenzen?
 
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?

malo 18. Aug 2005 22:01

Re: C => Delphi: Referenzen?
 
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 ;)

RavenIV 19. Aug 2005 07:19

Re: C => Delphi: Referenzen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab mal eine kleine tabelle mit einigen zuordnungen gefunden.

Olli 19. Aug 2005 08:28

Re: C => Delphi: Referenzen?
 
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.

malo 19. Aug 2005 08:35

Re: C => Delphi: Referenzen?
 
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 :mrgreen:

edit: Wobei das schon ein Beispiel zu dem war, was er sucht :mrgreen:

RavenIV 19. Aug 2005 08:36

Re: C => Delphi: Referenzen?
 
Zitat:

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

Olli 19. Aug 2005 08:48

Re: C => Delphi: Referenzen?
 
Zitat:

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" ;)

:wall: ... :oops: ... echt?

Zitat:

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

:lol: ... 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.

BlackJack 19. Aug 2005 10:14

Re: C => Delphi: Referenzen?
 
Zitat:

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.

Daniel G 19. Aug 2005 19:13

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von Olli
:wall: ... :oops: ... echt?

Total! :mrgreen: Aber trotzdem habe ich was gelernt ;)

@All: Vielen Dank für die Tipps, ich werde sie mir ansehen :)

tommie-lie 19. Aug 2005 21:31

Re: C => Delphi: Referenzen?
 
Zitat:

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 :mrgreen:
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.
Seite 1 von 2  1 2      

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