Probleme mit VC++

Gast #250434
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?
Angehängte Dateien:
#250435
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).
Gast #250436
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?
Gast #250437
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).
#250438
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.
Gast #250439
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.
Persönliche Seite #250443
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
Persönliche Seite #250447
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
#250448
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren