1 / 16

Einführung in Visual C++

Einführung in Visual C++. 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

gyula
Download Presentation

Einführung in Visual C++

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 • OK • OK • 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.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]; int l=0; 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++

More Related