www.mikrocontroller.net

Forum: PC-Programmierung Probleme mit VC++


Autor: Stifi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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?

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Stifi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Stifi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stifi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stifi (Gast)
Datum:

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

Autor: Stifi (Gast)
Datum:

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

Autor: Stifi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stifi (Gast)
Datum:

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

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stifi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Μαtthias W. (matthias) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.