Einf hrung in visual c l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

Einführung in Visual C++ PowerPoint PPT Presentation


  • 176 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Einf hrung in visual c l.jpg

Einführung in Visual C++

EDV1 - Visual C++


Allgemeines l.jpg

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++


Slide3 l.jpg

  • 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++


Starten von visual c l.jpg

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++


Teile des visualstudio fensters l.jpg

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++


Slide6 l.jpg

EDV1 - Visual C++


Beispiel f r strukturen l.jpg

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++


Header datei l.jpg

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++


Cpp datei l.jpg

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++


Stdafx h l.jpg

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++


Adress struktur l.jpg

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++


Slide12 l.jpg

  • 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++


Slide13 l.jpg

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++


Mit visualstudio debuggen l.jpg

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++


Kommandos im debug modus l.jpg

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++


Profilen l.jpg

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++


  • Login