Home

Der Anfang

Anliegen

Ich möchte meine ersten Schritte mit einem Compiler und grafischer Programmierung dokumentieren um auch andere teilhaben zu lassen. Ziel ist es einfache Programme mit grafischer Oberfläche (GUI = grafical user interface = grafische Benutzerschnittstelle) zu entwerfen. Im nächsten Schritt soll Hardwarezugriff realisiert werden.

Bezugsquelle

Zuerst muss der freue Compiller der auf dem Gcc basiert installiert werden. Zu finden ist er unter

http://www.bloodshed.net/devcpp.html

Also runterladen und installieren.

Installieren

Jetzt gehts los, es wird erstmal gesagt, dass alte Versionen entfernt werden sollen und gefragt wohin das Programm soll.

Nun muss man die Lizenzvereinbarung annehmen oder auch nicht (dann ich hier alles vorbei), die zu installierenden Optionen auswählen (ich hab alles so gelassen) und das Ziel festlegen, hab ich auch so gelassen.

Jetzt installiert es einige Minuten, gibt einen Hinweis aus und beendet die Installation. Hier kann man das Programm auch gleich starten.

Jetzt werden einige Grundlagende Dinge abgefragt, aussser die Sprache auf deutsch zu stellen habe ich nichts weiter getan.

Jetzt startet das Programm endlich. Zeit bisher: ca. 5 minuten (mit Schreiben der Texte hier *grins*

Ein kleiner Ausblick

Mit dem Programmieren sollte man sich zumindest ein klein wenig auskennen. Aber ein paar Worte wie man von einem Tutorial und dem hier vorgestellten Programm endlich etwas eigenes beginnen kann.

Wenn das Tutorial nichts weiter als die Sprache "C" beschreibt, dann geht das ganze meist nicht sehr weit über Texteein- und Ausgabe hinaus. Evtl. wird noch der Dateizugriff erwähnt und das war es. Wie kann man solche Dinge nun mit dem Dev-C++ Compiler umsetzten? Dazu gibt es sogenannte Konsolenanwendungen, oder "Console Aplication". Hier wird die Zeichenein- und ausgabe in einem einfachen Windowsfenster dargestellt. Man kann Zeichen eingeben und ausgeben.

Um ein Programm mit grafischer Oberfläche zu haben, also mit Button, Eingabefeldern und Ausgabefeldern und Scrollleisten, benötigt man etwas mehr, das sind dann richtite Applicationen, im Dev-C++ "Windows application genannt. Dazu dann später mehr.

Was will ich jetzt hier alles vorstellen? Geplant ist folgendes:

Ich bin mal selbst gespannt über welchen Zeitraum diese Dinge zusammengetragen werden und was noch alles dazukommt.

Konsolenprogramme

Wie bereits erwähnt können die meisten C-Anfänger Zeichenein- und ausgaben programmieren. Fortgeschrittenen werden Dateizugriffe begebracht und dazu benötigt man quasi die Komandozeile. Hier werden Zeichen ausgegeben und Eingaben gemacht. Bekannt ist das all denen die noch mit DOS Programmen zu tun hatten oder Batchdateien geschrieben haben.

Komandozeilenparameter einlesen

Das nachstehende sehr simple Programm zeigt nichts weiter an als die angegebenen Parameter. Unter Windows ist im argv[0] der Programmname enthalten. Je nachdem on wo aus aufgerufen wird, enthält die Zeichenkette auch den Pfad zum Programm.

#include <cstdlib>
#include <iostream>
# include <stdio.h>

using namespace std;

int main(int argc, char *argv[])
{
    int n = 0;
    system("cls");
    while (n<argc)
    {
          printf("Argument\t%d:\t%s\n", n, argv[n]);
          n++;
    }

    system("PAUSE");
    return EXIT_SUCCESS;
}

Ausgegeben wird dann wenn ich mit "projekt1 -o -w" aufrufe:

Drücken Sie eine beliebige Taste . . .
Argument	0:	konsole\projekt1
Argument	1:	-o
Argument	2:	-w

Hier wird noch ganz nebenbei etwas anderes demonstriert. Dazu ein paar Worte im nächsten Abschnitt.

Systembegehle ausführen

Wenn man einen Systembefehl ausführen will um z.B. den Ausgabebildschirm mit dem DOS Befehl "cls" zu löschen, kann der Befehl system(); verwendet werden. Ihm wird eine Zeichenkette mit dem entsprechenden Befehl übergeben. Das sieht z.B. so aus:

#include <cstdlib>
#include <iostream>
# include <stdio.h>

using namespace std;

int main(int argc, char *argv[])
{
    int n = 0;
    system("cls");
    system("dir");
    system("PAUSE");
    return EXIT_SUCCESS;
}
und ergibt im Programm die erwartete Ausgabe des Verzeichnisinhaltes:

Datenträger in Laufwerk C: ist SYSTEM2
Datenträgernummer: 1234-ABCD

Verzeichnis von C:\Dev-Cpp\Examples

05.02.2006  11:41       <DIR>          .
05.02.2006  11:41       <DIR>          ..
05.02.2006  11:41       <DIR>          FileEditor
05.02.2006  11:41       <DIR>          Hello
05.02.2006  11:41       <DIR>          Jackpot
05.02.2006  11:41       <DIR>          MDIApp
05.02.2006  11:41       <DIR>          OpenGL
05.02.2006  11:41       <DIR>          Simpwin
05.02.2006  11:41       <DIR>          WinAnim
05.02.2006  11:41       <DIR>          WinMenu
05.02.2006  11:41       <DIR>          WinTest
05.02.2006  12:41       <DIR>          konsole
06.02.2006  20:37                    0 out.txt
               1 Datei(en)              0 Bytes
              12 Verzeichnis(se),   1.128.144.896 Bytes frei
Drücken Sie eine beliebige Taste . . .

Damit lassen sich einfache Steuerungprogramme realisieren die weitere vorhandene oder selbsterstellte Programme aufrufen. Mit der Funktion sprintf mit der Zeichenketten ähnlcih wie mit printf erstellt werden können, kann man Parameter an weitere Programme übergeben.

Hardwarezugriffe

Als nächstes der Versuch die Hardware, primär die parallele Schnittstelle anzusteuern. Mal sehen wie das unter dem so sicheren Windows 2000 klappt.


Fragen, Anregungen, Kritik und Korrekturhinweise könnt ihr an mich senden.

Diese Seiten wurden zuletzt am 06.02.2006 aktualisiert

seit 28. Mai 2001 im Bereich Elektronik