Forum: PC-Programmierung Probleme mit VC++


von Stifi (Gast)


Angehängte Dateien:

Lesenswert?

Ich bin gerade dabei einen Rechner zu programmieren.
Jetzt weiss ich allerdings nicht wie ich eine Variable als
puplic(global) deklarieren kann? Zudem weiss ich auch nicht wie man
einen String anlegt.
Unter Borland Builder C++ habe ich keine Probleme gehabt.
Wie kann man einen Button Click abfragen?

von Christoph _. (chris)


Lesenswert?

Du solltest das Design deiner Klasse überdenken. In C++ sollte man
public-Variablen außer bei PODs (falls du nicht weißt, wofür POD steht,
gibt es kein außer) niemals einsetzen, da sie das Prinzip der Kapselung
verletzen, der Grundpfeiler der objekt-orientierten Programmierung.
Globale Variablen sollte man auch nur äußerst sparsam einsetzen (soll
heißen, so gut wie gar nicht).

Wieso schreibst du vor jeden Elementvariablen-Zugriff "this->"?

Die Funktion neu::Form1::button1_Click sieht so aus, als würde sie bei
Klick des Buttons "1" gesendet werden. Vermutlich kannst du auf die
anderen Button-Klicks genauso reagieren, also mit dem Wizard die
OnClick-Methoden hinzufügen (vielleicht reicht auch ein Doppelklick im
GUI-Editor).

von Stifi (Gast)


Lesenswert?

Ich habe unter -Visual C++ Projekte -> Windows-Forms Anwendung
erstellt.
Ich kann doch meinen Code dann unter z.B. Form1.h einfügen oder.
Mir fällt da auf das ich nur eine Header Datei habe. Keine CPP wurde
eingestellt.
Unter Borland Builder C++ war es irgendwie anders.

Gibt es im Internet ein gutes deutsche Forum wo ich Beispiele mir mal
anschauen kann?

von Stifi (Gast)


Lesenswert?

Ich habe unter -Visual C++ Projekte -> Windows-Forms Anwendung
erstellt.
Ich kann doch meinen Code dann unter z.B. Form1.h einfügen oder.
Mir fällt da auf das ich nur eine Header Datei habe. Keine CPP wurde
eingestellt.
Unter Borland Builder C++ war es irgendwie anders.

Gibt es im Internet ein gutes deutsche Forum wo ich Beispiele mir mal
anschauen kann?
-------------------------------------------
Chris:
Was meinst du genau damit?
Du solltest das Design deiner Klasse überdenken. In C++ sollte man
public-Variablen außer bei PODs (falls du nicht weißt, wofür POD
steht,
gibt es kein außer) niemals einsetzen, da sie das Prinzip der
Kapselung
verletzen, der Grundpfeiler der objekt-orientierten Programmierung.
Globale Variablen sollte man auch nur äußerst sparsam einsetzen (soll
heißen, so gut wie gar nicht).

von Christoph _. (chris)


Lesenswert?

> Was meinst du genau damit?

Das heißt, dass ich mich (leider?) nicht mit WinForms auskenne.
Ich habe daher versucht, eher allgemeine Ratschläge zu geben. Und wie
o.g. sind Variablen, die public oder gar global sind, in C++ böse.

Ich bin mir nicht sicher, ob es hier überhaupt WinForms-Programmierer
gibt.

von Stifi (Gast)


Lesenswert?

Macht es eigentlich Sinn WinForms zu programmieren oder soll ich .Net
oder MFC programmieren.Ich möchte von Borland Builder C++ wegkommen.
Was wäre da dann am besten für mich geeignet? Ich möchte auf jedenfall
nichts mit Internet Netzwerk usw. zu tun haben. Das brauche ich nicht.

von Stifi (Gast)


Lesenswert?

Kann mir hier jemand sagen wo ich Beispiele und Infos über WinForms
(VisualStudio.NET 2003) im Internet herbekommen kann?

von Stifi (Gast)


Lesenswert?

Kann mir hier jemand sagen wo ich Beispiele und Infos über WinForms
(VisualStudio.NET 2003) im Internet herbekommen kann?

von Stifi (Gast)


Lesenswert?

Wie lege ich dort eine globale Variable wie int oder string an?
Wie kann ich z.B. einen int Wert in String und umgekehrt umwandel?

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

Du vergleichst Äpfel mit Birnen.
.NET ist was anderes als MFC. .NET ist die "neue", auf einer VM
basierende Technologie von Microsoft die zukünftig als wichtigste
Programmierschnittstelle von Windows eingesetzt werden soll.

MFC ist deren "alte" Klassenbibliothek die man IMHO nicht mehr
einsetzen sollte.

WinForms wiederrum ist die GUI-Bibliothek in der
.NET-Klassenbibliothek. Wenn man also mit WinForms arbeiten soll sollte
man IMHO auch die .NET Haus- und Hofsprache C# verwenden.

BTW:
Wenn du nicht weißt wie man in $PROGRAMMIERSPRACHE eine globale
Variable anlegt solltest du dir zu selbiger mal ein Buch besorgen.

Matthias

von Stifi (Gast)


Lesenswert?

Ja kannst du mir ein gutes Buch empfehlen?
Dies sollte nicht so teuer sein.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

was willst du den lernen? C++? Dann ist IMHO
http://www.planetpdf.com//article.asp?contentid=6634&ra sehr gut
geeignet. Kost als PDF auch nichts. Für C# kann ich dir leider kein
Buch empfehlen. Das ging mit Kenntniss von Java und ein paar Beispielen
ziemlich problemlos.

Matthias

von Stifi (Gast)


Lesenswert?

Und zwar brauche ich da ein Buch, das mir zeigt wie ich in WinForms C++
Oberflächen programmieren kann. z.B. ComboBox, DataGrid, Button usw.
Für Borland Builder C++ habe ich auch so ein Buch.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

da kaum jemand Windows Forms von C++ aus nutzt (Wenn .NET dann auch mit
C# oder zur Not VB) wird es da auch kaum Bücher drüber geben. Ich kann
mich aber auch täuschen. Wenn du also wirklich diesen Weg gehen willst
solltest du dir erstmal die Sprache C++ genauer anschauen. Dann ist die
Verwendung irgend einer Klassenbibliothek das kleinste Hinderniss.

Matthias

von Christoph _. (chris)


Lesenswert?

Dem kann ich nur beipflichten. Ich würde niemandem empfehlen, sich
gleich auf die Programmierung grafischer Oberflächen zu stürzen; das
geht selten gut. Erstmal solltest du die Sprache in ihren Grundzügen
beherrschen.

Dann wüsstest du:
1) Wie man globale Variablen anlegt
2) Wieso man das bleiben lässt.

Wenn du beide Punkte, nicht nur den ersten, erreicht hast, kannst du
dir langsam GUI-Bibliotheken ansehen.

btw, WinForms (.NET) kannst du nicht mit C++ programmieren, soweit ich
weiß. Das geht nur mit "managed C++", ein C++ mit kleineren
Veränderungen/Erweiterungen (u.a. die VM, die Matthias erwähnte). Zu
MFC wird dir vermutlich keiner raten, da diese Bibliothek enorm viel
Altlasten mitschleppt und so ziemlich das Gegenteil eines guten Designs
darstellt; das sieht man z.B. schon an den Prefixen ("CString",
"CBla", ...), die aus grauer Vor-C++-Standard-Zeit stammen und in
heutigen C++-Bibliotheken nichts mehr zu suchen haben (Stichwort
namespace).

Ich kann dir gtkmm empfehlen, da solche Programme (wenn man ein wenig
aufpasst) unter allen drei wichtigen Desktop-Betriebssystemen laufen:
Linux, Mac OS X, Windows.

Um irgendeine Bibliothek für grafische Oberflächen einzusetzen,
solltest du aber schon recht sicher mit Klassen und Vererbung umgehen
können. Zeiger sind obligatorisch, Funktionszeiger solltest du
zumindest als solche erkennen können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.