Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C/C++ - Kompiler/Tutorial (https://www.delphipraxis.net/2907-c-c-kompiler-tutorial.html)

CalganX 12. Feb 2003 19:52


C/C++ - Kompiler/Tutorial
 
Hi,
ich will mich mal kurz fassen:
Welchen C/C++ - Kompiler (also für DOS z.B.) könnt ihr mir ans Herz legen?
Desweiteren: welches Tutorial könnt ihr mir zu C/C++ empfehlen?

Chris

PS: Ich meinte jetzt eigentlich eher in Richtung C, also DOS.

Snoop007 12. Feb 2003 21:51

;)
Du bist in einem Delphi - Forum ...
aber naja ... KnowWare hat ein Heftchen für c++ einsteiger welches auch ganz gut ist um einen groben überblick zu erhalten

janjan 12. Feb 2003 22:05

als Compiler würde ich für den Anfang Dev-C++ nehmen, der kann C/C++ und ist Freeware:

http://www.bloodshed.net/

CalganX 13. Feb 2003 13:34

Hi,
danke! Bin gerade dabei Dev-C++ herunterzuladen.
@Snoop007: Und wo gibt's das?

Dann fehlt nur noch ein Tutorial. Danke nochmal und schon im Vorraus!

Chris

janjan 13. Feb 2003 13:46

Von Markt und Technik gibts ein sehr gutes c und ein mittel gutes c++ Buch. Das c Buch ist meiner Meinung nach das beste für Einsteiger, wenn du Tutorials suchst, dann kuck mal hier:

http://www.forum-3dcenter.de/vbullet...threadid=24424

Luckie 13. Feb 2003 14:13

Tutorial: http://www.schornboeck.net/ckurs/inhalt.htm
Forum und gute Seite: http://www.cbuilder.de/ (direkt zum Forum: http://www.c-plusplus.de/ubb/cgi-bin/ultimatebb.cgi)

Chewie 13. Feb 2003 14:24

Schau mal hier.

Hier gibst nen C-Compiler inkl. Tutorial. Allerdings auf Englisch.

CalganX 13. Feb 2003 15:19

Hi,
ich sehe gerade, dass der Dev-C++-Kompiler die WinAPI-Version nutzt (@Luckie: Deine Tutorials sind super! Auch für C++! ;) ).
Nun gut. Werde mir die Tutorials mal ansehen.

Bis dann,
Chris

Luckie 13. Feb 2003 15:23

WinAPI ist WinAPI. Du mußt nur bei den Zeigern aufpassen und bei den Varibalendeklarationen.

CalganX 13. Feb 2003 15:25

Ja, ich hab's gemerkt! Musst ersteinmal 5 Minuten herumraten, wieso
Code:
int x = GetSystemMetrics(SM_CXSCREEN);
falsch ist. ;) Kruze Erklärung: dachte, dass man das machen kann, wie bei Java. Aber dem war nicht so...
Naja, jetzt klappt es einigermaßen. Was mich aber noch wundert: In der C++-Sprache von Borland wird der . durch ein -> ersetzt (z.B. bei einem record). Allerdings schreibt Dev-C++ immer . und es funktioniert. Kannste mir das mal erklären?

Chris

jbg 13. Feb 2003 16:21

Zitat:

Zitat von Chakotay1308
Was mich aber noch wundert: In der C++-Sprache von Borland wird der . durch ein -> ersetzt (z.B. bei einem record). Allerdings schreibt Dev-C++ immer . und es funktioniert. Kannste mir das mal erklären?

Das -> entspricht dem ^. unter Delphi. Der Pfeil dereferenziert den Zeiger und greift auf die Felder der struct/class zu. Der Punkt hingegen kann nur für statische, also nicht für Zeiger, angewandt werden.
Code:
typedef struct tagMYSTRUCT {
  int a, b;
} MYSTRUCT;

void main()
{
  MYSTRUCT st1;
  st1.a = 10; // ein direkter Zugriff ist hier möglich.

  MYSTRUCT *st2 = new MYSTRUCT;
  st2->a = 20; // hier muss der Zeiger dereferenziert werden
  delete st2;
}

CalganX 13. Feb 2003 17:09

Hm... verstanden, aber dennoch komisch, denn man nehme sich folgendes Beispiel:
Delphi-Quellcode:
// Borland C++-Builder (1)
Application->MessageBox( /* ... */);

// Borland Delphi (6)
Application.MessageBox( {...} );

// Dev-C++
// Gibt's hier nicht...
Da verstehe ich das nicht, da man hier ja nicht ^. schreibt...

Chris

d3g 13. Feb 2003 17:28

Hi Chakotay,

in Delphi werden Objekte, z.B. TApplication, als Referenz benutzt, d.h. du greifst immer über einen Poiter auf das Objekt zu, nur dass der Compiler das für dich vertuscht, da dieses Verhalten nur intern so läuft (aber es sorgt dafür, dass du, wenn du Objekte an Funktionen übergibst, auch wirklich auf die Obbjekte zugreift, die du haben willst). Um das mal in Code umzusetzen:
Delphi-Quellcode:
var
  Application: TApplication;
// Zugriff
Application.MessageBox(...);

// wird intern so behandelt:
var
  Application: ^TApplication;
// interner Zugriff
Application^.MessageBox(...);

// in C++ sähe das gleich so aus:
TApplication *Application;
Application->MessageBox(...);
MfG,
d3g

Robert 16. Feb 2003 10:00

Nicht zuviel erzählen, sonst steige ich wirklich noch auf C++ um *g*

OregonGhost 16. Feb 2003 11:46

Übrigens gibt es, falls du den Punkt lieber magst als den Pfeil, in C++ auch Referenzen:
Code:
TApplication Application;
/* ... */
TApplication& App = Application;
App.MessageBox(/* ... */);
Referenzen werden in C++ aber typischerweise nur für die Parameterübergabe benutzt. Sie sind sicherer, weil sie immer auf ein genau definiertes Objekt verweisen, während ein Zeiger ja auch wild um sich schießen kann mit seinen Adressen. Was ja auch oftmals Neulinge in C verzweifeln lässt, weil sie sehr früh damit konfrontiert werden, im Gegensatz zu Object Pascal, speziell Delphi, das wie gesagt mehr auf Referenzen setzt.


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