![]() |
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? |
Re: C => Delphi: Referenzen?
Mit einer Referenz kann ich nicht direkt dienen. Aber in der Tutorial-Sektion von
![]() Ich würd dir jetzt nen Direktlink geben, aber die Seite ist grad nicht erreichbar... eventuell später mal nachschauen, oder morgen ;) |
Re: C => Delphi: Referenzen?
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab mal eine kleine tabelle mit einigen zuordnungen gefunden.
|
Re: C => Delphi: Referenzen?
Daniel, Referenzen gibt es so nicht in Delphi. Das was den Referenzen noch am ähnlichsten kommt, sind
![]()
Delphi-Quellcode:
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.
var
bla1: DWORD; bla2: DWORD absolute bla1; |
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: |
Re: C => Delphi: Referenzen?
Zitat:
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 |
Re: C => Delphi: Referenzen?
Zitat:
Zitat:
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 ![]() |
Re: C => Delphi: Referenzen?
Zitat:
Code:
-
Inc(i, 1)
Code:
wieso Inc(i, 1) und nicht einfach Inc(i)?
i++
Code:
-
Edit1.Text
Code:
hier wird überhaupt nicht klar, dass der "->" - operator schon einen zeiger enthält; "->" ist sozusagen die kurzform für "(*Edit).Text".
Edit1->Text
Code:
-
var buffer : array[0..100] Of Char;
Code:
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.
char buffer[100];
Code:
-
Case i Of
0: begin end; 1: begin end; else begin end; end;
Code:
wenn man mit dem C-Switch die gleiche funktionalität wie mit dem Delphi-Case erreichen will, fehlt jeweils noch ein break;, also so:
switch i {
case 0: { } case 1: { } default: { } }
Code:
, 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.
switch i {
case 0: { //... break; } case 1: { //... break; } default: { //... } } 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: ![]() ist glaub ich original von ![]() |
Re: C => Delphi: Referenzen?
Zitat:
@All: Vielen Dank für die Tipps, ich werde sie mir ansehen :) |
Re: C => Delphi: Referenzen?
Zitat:
Hätte ich in C++ meine Klasse so:
Code:
wäre mein Objekct auf dem Stack und ich müsste mit blubb.member auf die Member des Objektes zugreifen. Erst bei
SomeClass blubb(parameter, fuer, konstruktor);
Code:
ist mein Objekt auf dem heap und als Pointer muss ich beim Zugriff erst dereferenzieren, oder eben -> benutzen.
SomeClass *blubb = new SomeClass(parameter, fuer, konstruktor);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz