Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Einführung in Visual C++

Ähnliche Präsentationen


Präsentation zum Thema: "Einführung in Visual C++"—  Präsentation transkript:

1 Einführung in Visual C++
EDV1 - Visual C++

2 Allgemeines Visual C++ ist integriert in VisualStudio
VisualStudio ist eine Oberfläche, die die Entwicklung, Testung und Pflege von Softwareprojekten unterstützt. Intelligenter Editor Projektunterstützung Leistungsfähiger Debugger Leistungsfähiger Profiler Für VisualStudio sind viele Compiler vorhanden. Z.B.: C++ J++ Visual Basic FoxPro InterDev (Internet-Applikationen) Fortran (von Digital Equipment) EDV1 - Visual C++

3 Einheitliche Oberfläche für viele Sprachen Intelligente Assistenten
Vorteile: Einheitliche Oberfläche für viele Sprachen Intelligente Assistenten Leistungsfähiger Editor Integration verschiedener Sprachen in einem Projekt Projektunterstützung (make-Funktion) Umfangreiche Debug-Möglichkeiten Umfangreiche Profiler-Möglichkeiten Nachteile: Assistenten erzeugen Texte, die viele Microsoft/Windows-spezifische Anteile Enthalten  geringere Portabilität. Automatisch generierte Texte sind schwer durchschaubar und sind daher schwer zu modifizieren. EDV1 - Visual C++

4 Starten von Visual C++ Start Programme  Microsoft Visual Studio 6.0 Visual C++ 6.0 Datei Neu Projekte Win32Konsolanwendung Pfad auswählen in dem das Projekt gespeichert werden soll Projektname eintragen OK ‚Eine „Hallo, Welt“-Anwendung erstellen‘ auswählen Es wird ein Projekt erstellt, das das fertige „Hallo, Welt“-Programm enthält. „!“ drücken Alle Programme werden übersetzt, gelinkt und in einem DOS-Fenster abgearbeitet. EDV1 - Visual C++

5 Teile des VisualStudio-Fensters
Links: Anzeige des offenen Projektes Karten: Klassen: zeigt die logische Struktur des Projektes Dateien: zeigt die Dateistruktur des Projektes Ressourcen: zeigt allgemeine Ressourcen, wie z.B. Zeichenketten, Grafiken u.s.w. Rechts: Bearbeitung von Inhalten (Quelltexte, Grafiken, Steuerelement u.s.w.) Unten: Mitteilungsfenster EDV1 - Visual C++

6 EDV1 - Visual C++

7 Beispiel für Strukturen
Es soll eine Struktur entwickelt werden, die Personendaten (Name, Adresse, Geburtsdatum) speichert und zugreifbar macht. Die Bestandteile sind wiederum Strukturen: Name: Anrede, Vorname, Nachname Adresse: Strasse, Postleitzahl, Ort Geburtsdatum: Tag, Monat, Jahr Bestandteile der Strukturen sind Zeichenketten bzw. int-Variable Zeichenketten können beliebig lang sein. Alternative: Es werden maximale Längen festgelegt. Nachteil: Es wird oft zu viel oder zu wenig Speicherplatz belegt. Es ist günstig für jede der benötigten Strukturen einen eigenen Modul zu definieren (analog Klassen in JAVA). Um Implementierung und Definition voneinander trennen zu können benutzt man header-Dateien. EDV1 - Visual C++

8 Header-Datei Enthält die nach außen sichtbaren Definitionen: Datentypen, Prozedurköpfe, Macros. Z.B.: datum.h #ifndef _P_DATUM #define _P_DATUM struct datum_struct { int tag; int monat; int jahr; }; typedef struct datum_struct datum; datum create_datum(int tag, int monat, int jahr); void destroy_datum(datum d); int datum_toString(char *buffer, int len, datum d); #endif // _P_DATUM EDV1 - Visual C++

9 CPP-Datei Enthält die Implementierung der Prozeduren. Z.B.: datum.cpp
#include "stdafx.h" datum create_datum(int tag, int monat, int jahr) { datum d={tag,monat,jahr}; return d; } void destroy_datum(datum d){} int datum_toString(char *buffer, int len, datum d) if (11>len) return 1; sprintf(buffer,"%2u.%2u.%4u",d.tag,d.monat,d.jahr); return 0; EDV1 - Visual C++

10 Stdafx.h Diese Datei kann benutzt, werden um include-Dateien nur in einer Datei angeben zu müssen. ... #include <stdio.h> #include <stdlib.h> #include <string.h> #include "datum.h" #include "adresse.h" #include "name.h" #include "person.h" EDV1 - Visual C++

11 Adress-Struktur adresse.h #ifndef _P_ADRESSE #define _P_ADRESSE
struct adresse_struct { char *strasse; int plz; char *ort; }; typedef struct adresse_struct adresse; adresse create_adresse(char *strasse, int plz, char *ort); void destroy_adresse(adresse a); int adresse_toString(char *buffer, int len, adresse a); #endif // _P_ADRESSE EDV1 - Visual C++

12 adresse create_adresse(char *strasse, int plz, char *ort) { adresse a;
adresse.cpp #include "stdafx.h" adresse create_adresse(char *strasse, int plz, char *ort) { adresse a; a.strasse=(char *)malloc(strlen(strasse)+1); strcpy(a.strasse,strasse); a.plz=plz; a.ort=(char *)malloc(strlen(ort)+1); strcpy(a.ort,ort); return a; } void destroy_adresse(adresse a) free(a.strasse); free(a.ort); EDV1 - Visual C++

13 int adresse_toString(char *buffer, int len, adresse a) { char b[20];
l=strlen(a.strasse)+1; if (l>len) return 1; strcpy(buffer,a.strasse); l++; if (l>len) return 2; strcat(buffer,"\n"); sprintf(b,"%u",a.plz); l+=strlen(b); if (l>len) return 3; strcat(buffer,b); l++; if (l>len) return 4; strcat(buffer," "); l+=strlen(a.ort); if (l>len) return 5; strcat(buffer,a.ort); return 0; } EDV1 - Visual C++

14 Mit VisualStudio Debuggen
Debuggen ist das Entfernen von Bugs aus Programmen. Häufige Fehler sind z.B.: Fehlerhafte Tests (< statt <= ...) Syntaktische Fehler (= statt ==, fehlende break-Anweisung) Fehlerhafte Indizes Schreiben über das Ende des Feldes oder der Zeichenkette. Negative Indizes bei Feldern. Fehlen des 0-Zeichens am Ende von Zeichenketten. Fehlerhafte Parameter beim Aufruf von Prozeduren. EDV1 - Visual C++

15 Kommandos im Debug-Modus
Erneut [im Debug-Modus] starten (Ctrl+Shift+F5) Debug beenden (Shift+F5) Ausführung anhalten Code-Änderung zuweisen (Alt+F10) Nächste Anweisung anzeigen (Alt+Num*) In Aufruf springen (F11) Aufruf als ein Schritt (F10) Ausführen bis Rücksprung (Shift+F11) Ausführen bis Cursor (Alt+F10) Schnellüberwachung (Shift+F9) Es können verschiedene Fenster für unterschiwdliche Anzeigen geöffnet werden. EDV1 - Visual C++

16 Profilen Profilen dient der Optimierung von Programmen. Es können z.B. folgende Fragen beantwortet wird: Welche Module werden wirklich benötigt? Welche Anweisungen werden abgearbeitet? Welche Module verbrauchen am meisten Rechenzeit? In weichen Abschnitten wird am meisten Rechenzeit verbraucht? EDV1 - Visual C++


Herunterladen ppt "Einführung in Visual C++"

Ähnliche Präsentationen


Google-Anzeigen