winapi

LCC-WIN32 Tutorial und C-Einführung
Einleitung
LCC-WIN32 (LCC32) ist ein umfangreiches und kostenloses C-Entwicklungsystem mit kompletter integrierte Entwicklungsumgebung (IDE) inklusive Editor, Debugger, Profiler, grafischem Ressourceneditor, Versionsverwaltung und Assistenten. Diese erlauben das schnelle Erzeugen von Consolen-, Dialog- und Fensterbasierten Projekten. Es können zwar keine MFC Klassen verwendet werden, aber alle WINAPI Funktionen werden voll unterstützt.

Der Autor Jacob Navia hat den bekannten und freiverfügbaren LCC (Little C Compiler) von W. Fraser und David Hanson um alles erweitert was ein vollwertiges Windowsentwicklungssystem so braucht.

Wer den Compiler samt IDE noch nicht installiert hat, sollte dies nachholen (unter C:\LCC32). Eine Kopie der Intallationspakete gibt es unter http://www.q-software-solutions.com oder direkt beim Autor http://www.cs.virginia.edu/~lcc-win32/ .

LCC-WIN32 ist bereits einige Jahre alt, der Pre-Prozessor wurde sogar teilweise von Dennis Ritchie (Dem Entwicker der Sprache C selbst) programmiert. Der Autor, Jacob Navia, nimmt ständig Verbesserungen und Anpassungen vor, so daß der Compiler immer auf dem neuesten Stand ist.

Während andere Sprachen kommen und gehen, hat die Programmiersprache C ihre Position auf dem Markt gehalten. Viele Anwendungen und Betriebsysteme (z.B. Unix) sind in C (bzw C++) programmiert. Viele Betriebsysteme werden vom Hersteller sogar mit einem C-Compiler ausgeliefert: UNIX, Linux, Solaris, SUN-OS, SGI-OS, BeOS ... und inzwischen auch Windows, mit der Einführung der DOT-NET Plattform. LCC32 ist kompatibel zu Windows 9X,NT,2000 und XP.

In diesem Tutorial soll die Verwendung von LCC32 sowie die Sprache C im Vordergund stehen. Es handelt sich keineswegs um eine komplette Sprachreferenz oder gar um ein Nachschlagewerk für Standartfunktionen. Vielmehr geht es um eine erste Einführung in die Sprache C und die Bedienung von LCC-WIN32.
Installation und Vorbereitung
Bei der Installation ist darauf zu achten, dass alle Komponenten (Comilersystem, Hilfedateien, Bibliotheken) die einzeln herunter geladen wurden, in dem GLEICHEN Verzeichnis installiert werden. In der Regel sollte das C:\LCC32 sein. Nach der Installation der Entwicklungsumgebung, werden die benötigten Exportbibliotheken automatisch erzeugt. Diese werden vor allem für Windows API Programme benötigt. Dazu später mehr.
Die Entwicklung von C
Einst als Versuchssprache für ehemals wissenschaftliche Zwecke entwickelt, hatte man sich nicht viele Gedanken um einen wohlklingenden Namen für diese Programmiersprache gemacht. So wurden die einzelnen Entwürfe mit den Buchstaben des Alphabets gekennzeichnet. Aus der Sprache BCPL entwickelte sich gegen 1970 B. B wurde nach seinem großen Erfolg bei der UNIX Programmierung quasi auf C weiter entwickelt.

1973 begann der große Vormarsch der Sprache C (der Name wurde bis heute beibehalten) UNIX in der Version 6 wurde zu diesem Zeitpunkt auf der PDP11 fast ausschließlich in C programmiert. Das in dieser Version installierte UNIX und die Systemprogrammierung, wird 1978 von Brian Kerningham und Dennis M. Ritchie in ihrem gemeinsamen Buch "The C Programminglanguage" erstmalig vorgestellt. Lange Zeit war dieses Buch der Quasi-Standart für C. Man spricht in diesem Zusammenhang auch von "Kerningham und Ritchie C".

Im Laufe der Zeit erfreute sich die Sprache C stetig steigender Beliebtheit; bis in die Mitte der Neunziger-Jahre hinein. 1988 bekam die Programmiersprache C (als eine der Wenigen) einen eigenen Standard vom ANSI-Komitee, X3J11 der später auch ANSI-C genannt wurde. Viele Betriebssysteme und Softwarepakete sind zur Zeit in C entwickelt und werden noch darin entwickelt werden.
Vom Quellcode zum ausführbaren Programm
Am Anfang eines jeden Programms steht immer die Idee zu dem Programm, diese wird dann als Quelltext formuliert und von dem Compiler in ein ausführbares Programm übersetzt. Im folgenden Beispiel wird das "tutorial-übliche" Hallo-Welt-Programm verwendet.
#include <stdio.h>              (1)
int main(void)                  (2)
{                               (3)
   printf("Hello World !\n");   (4)
   return 0;                    (5)
}                               (6)
In der Programmiersprache C befinden sich (fast) alle Standart-Funktionen in eigenen Bibliotheken, die bei Bedarf dem Programm hinzugefügt werden können. Zum Beispiel befinden sich die Deklarationen (Beschreibungen) der Standart-Ein-Ausgabe Funktionen in stdio.h Standart-In-Out-Header-Datei. Mit Hilfe des Pre-Prozessors und der #include Anweisung in Zeile (1) wird die Datei <stdio.h> in das Programm eingefügt.

Die Funktion main() wird immer als erste aufgerufen, nach dem Start des Programms. Alle zwischen den geschweiften Klammern (3) (6) stehenden Anweisungen, gehören zu der Funktion und werden der Reihe nach ausgeführt.

(4) gibt den Text "Hello World !" aus mit einem Zeilenumbruch, der duch das Backslash-N angegeben wurde.

(5) verläßt die Funktion und gibt den Wert 0 zurück.

Nach dem Start von Wedit (der IDE von LCC-WIN32) kann ein neues Projekt mit der Hilfe des Menüs unter Projekt->Create angelegt werden. Dabei müssen mindestens ein Arbeitsverzeichnis und der Projekttyp festgelegt werden, alle weiteren Einstellungen können so übernommen werden, wie sie voreingestellt sind. Das Arbeitsverzeichnis muß existieren, es wird nicht automatisch anglegt. Alle in diesem Tutorial vorgestellten Beispiele gehen von einer Installation des Compilers unter C:\LCC32 und einem dem Projekt entsprechenden Arbeitsverzeichnis unter C:\work aus. Es ist nicht möglich zwei Projekte mit dem gleichen Namen anzulegen. Weitere Deteils zum Anlegen neuer Projekte finden sich hier.

Übung 1:

  • ein Projekt MyFirst anlegen (unter C:\work\myfirst)
  • das Hallo-Welt-Programm einfügen, den Rest entfernen
  • mit F9 (oder Compiler->Make) übersetzen
  • in der unteren Hälfte erscheint myfisrt.exe built successfully. (0.1 sec).
  • anderenfalls den Fehler suchen.


Das erste Programm wurde erfolgreich übersetzt und kann jetzt zum ersten mal ausgeführt werden -> mit CTRL-F5. Die EXE Datei wurde in dem Arbeitsverzeichnis des Projektes unter LCC abgelegt. In diesem Verzeichnis liegen alle Ausgabe- Dateien des Compilers und des Linkers. Die EXE kann auch von dort ausgeführt werden.

Diese Tutorial befindet sich noch im Aufbau. Es werden bald mehr Themen verfügbar sein. Unter anderem wird es um die Anwendung von LCC32 im Zusammenhang mit der WINAPI gehen, es wird einen Text über das erstellen von eigenen DLLs geben und vieles mehr. Wenn Ihr Fragen oder Anregungen habt bitte an.