Delphi-PRAXiS

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.

Olli 19. Aug 2005 22:02

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von tommie-lie
Wenn wir schon Korinthen kacken, können wir das auch richtig tun :mrgreen:

Das ist ja das oben bereits erwähnte Problem. Leider kann Delphi keine echten Stackobjekte erzeugen (außer mit einem kompatiblen aber "deprecated" Sprachelement welches ich hier nicht erwähnen will).

tommie-lie 20. Aug 2005 10:46

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von Olli
Leider kann Delphi keine...

Delphi kann einiges nicht, was C kann, zum Bleistift auch Referenzen ;-)
Deswegen würde ich auch nicht versuchen, irgendeine Übersetzungsanleitung zu suchen. Richtig sauber werden solche Übersetzungen meist nur, wenn man C (und insbesondere auch die STL-Erben von C++) kann und nicht einfach irgendein Script abarbeitet. Das mag bei Header-Übersetzungen prima funktionieren (gell, Olli ;-)), bei "richtigen" Programmen fängt es an haarig zu werden. Ich empfehle also die C/C++-Sprachreferenz als Anhaltspunkt. In gut sortierten Stadtbibliotheken (also nicht in der in Vellmar) soll es sogar Bücher über C und C++ geben.

Daniel G 20. Aug 2005 16:43

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von tommie-lie
In gut sortierten Stadtbibliotheken (also nicht in der in Vellmar)

..und auch nicht in der in Kiel.... :roll:

Mal sehen, vielleicht "lerne" ich ja wirklich C/C++. Obwohl ich die Sprache eigentlich überhaupt nicht leiden kann.

tommie-lie 20. Aug 2005 16:51

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von Daniel G
..und auch nicht in der in Kiel.... :roll:

Da gibt's nur Segelbücher :mrgreen:

Zitat:

Zitat von Daniel G.
Obwohl ich die Sprache eigentlich überhaupt nicht leiden kann.

Du musst ja nicht in ihr entwickeln. Aber wenn du sie wirklich beherrschst, lernst du sie auch zu lieben ;-)

Olli 20. Aug 2005 16:59

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von tommie-lie
Aber wenn du sie wirklich beherrschst, lernst du sie auch zu lieben ;-)

Das würde ich nur für sauberes C++ bejahen. C-Code ist oft ein Graus ... insbesondere weil manche Programmierer die Programmiersprache und den Präprozessor verwechseln :?

Aber allein operator+, operator+= usw. zu überladen ist eine wahre Freude. Besonders wenn man es danach benutzen kann. Ich habe z.B. eine komplexe Molekülklasse, die ich mit einer einfachen Zuweisung molec1 = molec2 kopieren kann usw. ... sowas macht einfach Lust auf mehr.

tommie-lie 20. Aug 2005 17:08

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von Olli
Das würde ich nur für sauberes C++ bejahen. C-Code ist oft ein Graus ... insbesondere weil manche Programmierer die Programmiersprache und den Präprozessor verwechseln :?

Stimmt, aber das sind auch die Programmierer, die es nicht so ganz verstanden haben, oder die einfach zu exzentrisch sind, um den eigenen Quellcode wartbar zu machen ;-)

Daniel G 20. Aug 2005 17:49

Re: C => Delphi: Referenzen?
 
Zitat:

Zitat von tommie-lie
Zitat:

Zitat von Daniel G
..und auch nicht in der in Kiel.... :roll:

Da gibt's nur Segelbücher :mrgreen:

Hey, aber die sind gut! :thumb:

Zitat:

Zitat von Olli
C-Code ist oft ein Graus ... insbesondere weil manche Programmierer die Programmiersprache und den Präprozessor verwechsel

Eben deshalb. Das Problem hatte ich mit Delphi bis jetzt selten. Na ja, was solls...


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:04 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