QuickC
QuickC
| |
---|---|
Hallo-Welt-Programm und Compiler-Einstellungen von QuickC 2.51 | |
Basisdaten
| |
Entwickler | Microsoft |
Erscheinungsjahr | 1987[1] |
Aktuelle Version | 2.51 (1990) |
Betriebssystem | MS-DOS |
Programmiersprache | C |
Kategorie | Compiler, IDE |
Lizenz | MS-EULA |
Microsoft QuickC ist ein Compiler und eine zeichenorientierte Entwicklungsumgebung für die Programmiersprache C unter MS-DOS. Später folgte auch eine Version mit grafischer Benutzeroberfläche für das Betriebssystem Windows. Es ist in allen Versionen möglich, zwischen reinem ANSI C und den Spracherweiterungen von Microsoft zu wählen. Keine Version unterstützt objektorientierte Programmierung.[2]
Geschichte
[Bearbeiten | Quelltext bearbeiten]QuickC 1.00 (Oktober 1987)
Die erste Version setzt die damalige Version des ANSI-C-Standards um und ist grundsätzlich kompatibel mit Microsoft C 5.0. Allerdings wird das Huge-Speichermodell nicht unterstützt.[3]
Der Debugger CodeView unterstützt QuickC, ist aber nicht im Lieferumfang enthalten.[4] Der integrierte Source-Level-Debugger von QuickC basiert jedoch auf CodeView.[3]
Die Benutzeroberfläche ist als Single Document Interface (SDI) gestaltet. Es können also nicht mehrere Quelltextdateien gleichzeitig geöffnet sein bzw. bearbeitet werden.[5]
Die Version hatte Kompatibilitätsprobleme mit diversen Festplattencontrollern von Western Digital, da beide Technologien denselben Interruptvektor für unterschiedliche Zwecke nutzten.[6]
QuickC 1.01 (März 1988)
Die Version behebt diverse Grafikfehler und die zuvor genannten Kompatibilitätsprobleme mit den Festplattencontrollern von Western Digital.[3]
QuickC 2.00 (Januar 1989)[7]
Für die zweite Version von QuickC wurde die zeichenorientierte Benutzeroberfläche (TUI) der Entwicklungsumgebung komplett neu erstellt.[8] Sie ähnelt jetzt der TUI von QuickBASIC 4.5 oder dem später erschienen Microsoft C 6.0 (Programmer’s WorkBench; PWB).[9] Wie bei diesen wird nun auch eine kontextsensitive Hilfe angeboten. Befindet sich der Cursor innerhalb eines Schlüsselwortes oder eines Bezeichners einer bekannten Funktion, Konstanten oder Compiler-Anweisung, kann man durch Drücken der F1-Taste oder einem Rechtsklick die Dokumentation für das jeweilige Sprachelement anzeigen lassen.[10][11]
Ab dieser Version besaß QuickC einen inkrementellen Compiler.[9][12] Bei Änderungen in einzelnen Dateien muss also nicht das komplette Projekt neu kompiliert werden, sondern nur die Teile, welche von den Änderungen direkt betroffen sind. Allerdings ist es nicht möglich, CodeView zusammen mit dieser Einstellung zu verwenden.[13]
Ähnlich wie bei BGI für Turbo C/C++ werden neben Zeichenfunktionen für grafische Primitiven auch zusätzliche Funktionen zur Visualisierung von statistischen Daten bereitgestellt.[12] Dazu zählen Streu-, Linien-, Balken- und Kreisdiagramme.[14]
Wie bei Microsoft C werden ab der zweiten Version Inline-Assemblerfragmente unterstützt.[9][12] Zudem werden alle Speichermodelle im Real Mode von x86-Prozessoren unterstützt.[9] Bei den beiden Versionen zuvor war das Tiny-Modell nicht verfügbar.[8] Dieses ist u. a. notwendig zur Erstellung von COM-Dateien.[15]
Die erstellten Programme sind kompatibel mit Microsoft C 5.1.[16] Die Make-Dateien für den Erstellungsprozess sind aufgrund der Umstellung von MAKE
auf NMAKE
jedoch nicht auf Anhieb kompatibel mit denen von früheren Versionen.[17]
QuickC 2.01 (Juni 1989)
Identisch mit Version 2.00. Bei dieser Version wurde QuickC lediglich zusammen mit QuickAssembler vertrieben.[18]
QuickC 2.50 (Mai 1990)
Programme sind kompatibel mit Microsoft C 6.0.[19] Variablen vom Typ long double
werden nun in der für den 80x87 Co-Prozessor typischen Form von 10-Byte (80-Bit) gespeichert, vorher war das noch in 64-Bit.[20]
QuickC 2.51 (Dezember 1990)
Identisch mit Version 2.50. Bei dieser Version wurde QuickC lediglich zusammen mit QuickAssembler vertrieben.[18]
QuickC for Windows
[Bearbeiten | Quelltext bearbeiten]QuickC for Windows | |
---|---|
Basisdaten
| |
Entwickler | Microsoft |
Erscheinungsjahr | 1991[1] |
Aktuelle Version | 1.00 (1991) |
Betriebssystem | Microsoft Windows |
Programmiersprache | C |
Kategorie | Compiler, IDE |
Lizenz | MS-EULA |
Im September 1991 veröffentlichte Microsoft eine integrierte Entwicklungsumgebung für QuickC mit einer grafischen Benutzeroberfläche (GUI), die für Windows 3.x (16-Bit) ausgelegt war.[21] Die Standard-Edition von Visual C++ 1.0 basiert weitestgehend auf QuickC for Windows.[22][23]
Funktionen
[Bearbeiten | Quelltext bearbeiten]Die Entwicklungsumgebung von QuickC for Windows besitzt folgende Eigenschaften bzw. bietet folgende Funktionen an:[21][24][25]
- Das Hauptprogramm besitzt eine MDI-Oberfläche. Es können also mehrere Dokumente gleichzeitig bearbeitet werden.
- Der Quelltext-Editor unterstützt Syntaxhervorhebung.
- Es wird ein integrierter Source-Level-Debugger angeboten, der jedoch nur rudimentäre Funktionen, wie beispielsweise Haltepunkte und das Überwachen einzelner Variablen, unterstützt. Maschinencode kann nicht angezeigt werden und es ist auch nicht möglich, Fragmente, die in einer anderen Programmiersprache erstellt wurden, zu analysieren.
- Code aus Microsoft C 6.0 ist grundsätzlich lauffähig unter QuickC for Windows. Allerdings werden nur die Speichermodelle Small, Compact, Medium und Large durch die Entwicklungsumgebung angeboten. Das Tiny-Modell wird nicht über die Oberfläche bereitgestellt.
- Anwendungen, die für Windows ausgelegt sind, können Dynamic Data Exchange (DDE) nutzen.
- Microsoft QuickC for Windows 1.0 ist etwa 52 % langsamer als Borland Turbo C++ for Windows 3.1.
Projekttypen
[Bearbeiten | Quelltext bearbeiten]Es werden vier Projekttypen unterstützt. Die erstellten Programme sind grundsätzlich für den Protected Mode ausgelegt. Es können aber auch DOS-Programme im Real Mode erzeugt werden.
Windows EXE
Eine 16-Bit-Anwendung für Windows. Je nachdem, ob ein Hauptfenster erzeugt wird oder nicht, kann es sich dabei entweder um eine Konsolenanwendung oder um ein Programm mit grafischer Benutzeroberfläche handeln.
QuickWin EXE
Ein automatisch generiertes Grundgerüst für eine 16-Bit-Windows-Anwendung mit grafischer Benutzeroberfläche. Auf dieser befindet sich ein mehrzeiliges Ein- und Ausgabefeld, das die Standard-Datenströme abbildet. Der Projekttyp ist für Testanwendungen geeignet, aber auch, um alte Programme aus Microsoft C 6.0 und früher unter Windows lauffähig zu machen und mit einer rudimentären grafischen Benutzeroberfläche auszustatten.[24] Klassische Programme für MS-DOS erforderten unter Windows 3.x noch einen Wechsel in den DOS-Modus, was mit diesem Projekttyp umgangen werden konnte.
Windows DLL
Eine 16-Bit-Dynamic Link Library (DLL) für Windows.
DOS EXE
Eine Konsolenanwendung für MS-DOS.
Optionale Werkzeuge
[Bearbeiten | Quelltext bearbeiten]Ähnlich, wie bei allen späteren Entwicklungsumgebungen für C/C++ von Microsoft, werden Editoren für Ressourcen bereitgestellt.[21] Diese liegen als eigenständige Applikationen vor, können aber auch aus der IDE heraus gestartet werden.[25]
Microsoft Dialog Editor
Ein WYSIWYG-Editor zur Gestaltung von Dialogfenstern, die in einer Ressourcendatei abgelegt werden können. Neben den Standard-Steuerelementen von Windows (Textfelder, Schaltflächen, Kontrollkästchen etc.), können auch benutzerdefinierte Steuerelemente eingefügt werden. Diese müssen selbst gezeichnet und die Ereignisbehandlung und die Geschäftslogik generell selbst implementiert werden. Vererbung von bestehenden Steuerelementen funktioniert nicht, da dieses Konzept nicht durch die Programmiersprache umgesetzt werden kann.[2]
Microsoft Image Editor
Ein Editor für Rastergrafiken (Bitmaps, Mauszeiger und Icons), die ebenfalls in einer Ressourcendatei abgelegt werden können. Der Editor ähnelt der damaligen Version von Microsoft Paintbrush.
Caseworks QuickCase:W
Das CASE-Werkzeug QuickCase:W ermöglicht die Generierung von Quelltext für die grafische Benutzeroberfläche.[24][26] Es handelt sich dabei um eine abgespeckte Version der Software Case:W der Firma Caseworks Inc.[27]
Beispiel
[Bearbeiten | Quelltext bearbeiten]Das folgende Hallo-Welt-Programm zeigt eine Messagebox mit dem Text „Hallo Welt!“ an. Unter QuickC for Windows ist es zwingend erforderlich, dass die Hauptfunktion die Pascal-Aufrufkonvention nutzt.[28]
#include <windows.h>
int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
return MessageBox (NULL, "Hallo Welt!", "Wikipedia", MB_ICONINFORMATION);
}
Literatur
[Bearbeiten | Quelltext bearbeiten]- Ekkehard Kaier, Edwin Rudolfs: Microsoft QuickC-Wegweiser Grundkurs. Vieweg, Wiesbaden 1989, ISBN 3-322-98487-7, doi:10.1007/978-3-322-98486-9.
- Mitchell Waite et al.: Microsoft QuickC Programming: The Microsoft Guide to Using the QuickC Compiler. 2. Auflage. Microsoft Press, Redmond 1988, ISBN 1-55615-048-2 (englisch).
- Werner Feibel: Using QuickC. McGraw Hill, New York 1988, ISBN 0-07-881292-5 (englisch).
- Peter Hipson: Using QuickC for Windows. Que, Carmel 1992, ISBN 0-88022-810-5 (englisch).
- Sascha Siebers: QuickC für Windows ganz einfach. Sybex, Düsseldorf 1992, ISBN 3-88745-190-2.
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ a b Microsoft (Hrsg.): Microsoft QuickC for Windows: Graphical Development Environment. C for Windows. 1991, Dokument Nr.: SY21048-0791, S. XXV (englisch).
- ↑ a b Sascha Siebers: QuickC für Windows ganz einfach. Sybex, Düsseldorf 1992, ISBN 3-88745-190-2, S. 18 f., 69 f., 74–78.
- ↑ a b c Mike Todd: Microsoft QuickC Battles for a Better C Benefit Novice and Professional Alike. In: InfoWorld. Band 10, Nr. 21. Popular Computing, 23. Mai 1988, ISSN 0199-6649, S. 67 f. (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ Edward Warner: User Group Greets Microsoft’s New C Products With Enthusiasm. In: InfoWorld. Band 9, Nr. 23. Popular Computing, 8. Juni 1987, ISSN 0199-6649, S. 73 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “Codeview […] works with QuickC but does not come with the program […].”
- ↑ Rudyard Merriam: Turbo C++ for DOS | Microsoft QuickC for DOS. In: PC Magazine. Band 11, Nr. 13. Ziff Davis, Juli 1992, ISSN 0888-8507, S. 406–409 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ Jeff Angus: Microsoft Scrambles to Patch QuickC Bugs. In: InfoWorld. Band 9, Nr. 49. Popular Computing, 7. Dezember 1987, ISSN 0199-6649, S. 3 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ QuickC 2.0 Shows Off New Interface, Adds Memory Models, In-Line Assembler, PC Mag 30. Mai 1989 S. 36
- ↑ a b Scott Robert Ladd: Great C Comparison Of 1989. In: Micro Cornucopia. Nr. 46, März 1989, ISSN 0747-587X, S. 45 (englisch, bitsavers.org [PDF; 10,9 MB; abgerufen am 8. Juli 2024]).
- ↑ a b c d Stuart J. Johnston: Microsoft Offers QuickC Upgrade. In: InfoWorld. Band 11, Nr. 3. Popular Computing, 16. Januar 1989, ISSN 0199-6649, S. 15 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ Using the Keyboard. In: Microsoft QuickC 2.51 Hilfe (QCENV.HLP). 1990 (englisch).
- ↑ Using the Mouse. In: Microsoft QuickC 2.51 Hilfe (QCENV.HLP). 1990 (englisch).
- ↑ a b c Q38032: Differences among QuickC Versions 2.00, 1.00, and 1.01. In: msarchive.pcjs.org. Microsoft, 23. Januar 1991, abgerufen am 2. Juli 2024 (englisch).
- ↑ Q38951: QuickC Version 2.00 Supports CodeView Information. In: msarchive.pcjs.org. Microsoft, 31. Oktober 1989, abgerufen am 30. Juni 2024 (englisch): „The current CodeView release is unable to understand Incrementally compiled/linked executables. If you try to use CodeView on an EXE file that was Incrementally compiled and/or linked, you will be unable to trace through the code.“
- ↑ Chart Type Constants. In: Microsoft QuickC 2.51 Hilfe (GRAPHICS.HLP). 1990 (englisch).
- ↑ Raymond Chen: A look back at memory models in 16-bit MS-DOS. In: devblogs.microsoft.com. Microsoft, 28. Juli 2020, abgerufen am 26. März 2024 (englisch).
- ↑ Richard Relph: Six C Compilers. In: InfoWorld. Band 11, Nr. 21. Popular Computing, 22. Mai 1989, ISSN 0199-6649, S. 47–60 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ Q37494: Differences in MAKE Files among QuickC 1.00, 1.01, and 2.00. In: msarchive.pcjs.org. Microsoft, 20. Januar 1989, abgerufen am 2. Juli 2024 (englisch).
- ↑ a b Q66288: „QuickC with QuickAssembler“ is 2.51, „QuickC“ alone is 2.50. In: msarchive.pcjs.org. Microsoft, 24. Oktober 1990, abgerufen am 30. Juni 2024 (englisch): „The only difference between QuickC 2.50 and 2.51 is the addition of a QuickAssembler, to create and assemble stand-alone assembly programs. The QuickC portion of the 2.51 product is exactly the same as in QuickC 2.50. (Also, the QuickC portion of the 2.01 product is exactly the same as in QuickC 2.00.)“
- ↑ The Low Cost Alternative Entry-Level C/C++ Compilers, PC Mag Juli 1992 S. 405
- ↑ QuickC 2.5 Up and Running. In: Microsoft Programmer’s Library 1.3. (QCUPRUN.DB). 1991, Document Number: SY10424-0290, Appendix B: QuickC Differences (englisch, pcjs.org [abgerufen am 9. August 2024]).
- ↑ a b c Microsoft (Hrsg.): Microsoft QuickC for Windows: Graphical Development Environment. Development Environment Guide. 1991, Dokument Nr.: LN21046-0891, S. 3–8, 67–72 (englisch).
- ↑ Kelley Damore: Visual C++ adds Windows support. In: InfoWorld. Band 15, Nr. 8. Popular Computing, 22. Februar 1993, ISSN 0199-6649, S. 17 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ QuickC for Windows: All the Pieces Minus Some Glue PC Mag 26. Nov 1991 S. 49
- ↑ a b c Douglas Forer: C languages: oceans apart. In: InfoWorld. Band 14, Nr. 6. Popular Computing, 3. Februar 1992, ISSN 0199-6649, S. 55–68 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ a b Charles Petzold: Microsoft QuickC for Windows | Turbo C++ for Windows. In: PC Magazine. Band 11, Nr. 13. Ziff Davis, Juli 1992, ISSN 0888-8507, S. 409–412 (englisch, eingeschränkte Vorschau in der Google-Buchsuche).
- ↑ What Is QuickCase:W? In: QuickCase:W 1.0 Hilfe (QCASEW.HLP). 1991 (englisch): “QuickCase:W is a Windows application that lets you draw a picture of what you want your program to look like—the menu system, linked resources, and general appearance. QuickCase:W then writes the source code for you.”
- ↑ Steve Gibson: Shedding light on the essence within Visual Basic and QuickC. In: InfoWorld. Band 13, Nr. 39. Popular Computing, 30. September 1991, ISSN 0199-6649, S. 27 (englisch, eingeschränkte Vorschau in der Google-Buchsuche): “QuickC’s QuickCase:W is a junior version of two other QuickC-compatible user-interface builders now being offered by Caseworks. Case:W Standard Edition […] (and) Case:W Corporate Edition […].”
- ↑ WinMain function. In: Microsoft QuickC for Windows 1.00 Hilfe (QCWIN.HLP). 1991 (englisch): “The WinMain function requires the PASCAL calling convention.”