     
    
  
   Fr alle, die es interessiert:
     
               Programmierkurs in Turbo C++ fr Windows 
                             Zweiter Teil
  
                               
   
   Wegen der bescheidenen Beschreibung (sogar in den mitgelieferten
   Programmierhandbchern) habe ich jetzt vor, mal n bichen Informatik-
   lehrer zu spielen (wird wahrscheinlich nur n hilfsbereiter Mitschler)
  
   Und weiter geht der Weg nach Westen:
  
   Zuerst ffnen wir ein Projekt:
  
    +------------------------------------------------------------------+
    |                              FIRST.PRJ                           |
    +------------------------------------------------------------------+
    | >      FIRST.CPP                                                 |
    | >      FIRST.RC                                                  |
    +------------------------------------------------------------------+
  
    Fenster mit Men und
    Abfrage nach Beendigung
    durch <Datei|Ende>
    in Turbo C++ fr Windows
  
   Listing 1: Die Datei <first.cpp>
  
   #include <owl.h>
   #define CM_DN 101
   #define CM_HI 201
  
   char* szMenuName = "MENUE";
  
   // Klassen
  
   class TFenster : public TWindow
   {
          public:
          TFenster (PTWindowsObject, LPSTR);
          virtual BOOL CanClose (void);
          virtual void Datei_Ende (RTMessage)
          = [CM_FIRST + CM_DN];
          virtual void Hilfe_Info (RTMessage)
          = [CM_FIRST + CM_HI];
   };
  
   class TAnwendung : public TApplication
   { 
          public:
          TAnwendung (LPSTR, HANDLE, HANDLE, LPSTR, int);
          virtual void InitMainWindow (void);
   };
  
   // Konstruktoren
  
   TFenster::TFenster (PTWindowsObject MutterFenster, LPSTR szTitel):
            TWindow (MutterFenster, szTitel)
   {
          AssignMenu (szMenuName);
   }
  
   TAnwendung::TAnwendung (LPSTR szName, HANDLE hInstance, 
                HANDLE hPrevInstance, LPSTR lpCmdLine, 
                          int nCmdShow):
              TApplication (szName, hInstance, hPrevInstance, 
                            lpCmdLine, nCmdShow)
   {
   } 
  
   // Elementfunktionen
  
   void TFenster::Datei_Ende (RTMessage Ereignis)
   {
          TWindow::CMExit (Ereignis);
   }
  
   void TFenster::Hilfe_Info (RTMessage Ereignis)
   {
          MessageBox (HWindow, "Prof.Dr.Dipl.Ing. Wasweiich", "Info",
          MB_ICONINFORMATION | MB_OK); 
   }
  
   BOOL TFenster::CanClose (void)
   {
     int nKontrolle = MessageBox (HWindow, "Sind Sie sicher?", 
                                  "Beenden", 
                                  MB_YESNO | MB_ICONQUESTION);
     if (nKontrolle == IDNO) return FALSE;
     return TRUE;
   }
  
   void TAnwendung::InitMainWindow (void)
   {
      MainWindow = new TFenster (NULL, Name);
   }
  
   // Hauptprogramm //
  
   int PASCAL WinMain (HANDLE hInstance, HANDLE hPrevInstance, 
                      LPSTR lpCmdLine, int nCmdShow)
   {
     TAnwendung Appl ("Applikation", hInstance, hPrevInstance, 
                      lpCmdLine, nCmdShow);
     Appl.Run ();
     return (Appl.Status);
   }
  
   Ende Listing 1
  
   Listing 2: Die Datei <FIRST.RC>
  
   MENUE MENU
   BEGIN
          POPUP "Datei"
          BEGIN
                  MENUITEM "Ende", 101
          END
  
          POPUP "Hilfe"
          BEGIN
                  MENUITEM "Info", 201
          END
  
   END
  
   Ende Listing 2
  
   Die Listings mssen genau SO und nicht anders bertragen werden,
   da der C++ Compiler sehr auf Rechtschreibung Wert legt: Gro-
   und Klein-, Zusammen- und Getrenntschreibung!!!
  
   Das war's wieder mal. Beim nchsten mal geht's weiter.
  
   Tschau!
             SKY-force
  
   Also, wenn hier wieder TABS drin sind, dann habe ich einen Sch...editor. 
   Der wandelt nmlich immer 8 Blanks in einen TAB um.
  
   >#< Was soll ich Dir sagen, ... Du hast einen Sch..editor!!! Use !Edit by
       Ullix, TurboPascal Editor, Edit by Novell Dos or an OTHER Editor.
       Don't use an editprogram under Windows (TM)!!!
       I've learning English in my spare time, yet ;-)
  
       Keep smiling  
       Fury        (send mistakes back!)
  
   **> Nimm auf jeden Fall nicht den Editor von MSDOS 6.2 und auch nicht den
       von PowerBasic, da hab ich schon meine Erfahrungen mit gemacht.
       Die knallen den Text voll mit TABs. Zur Ehrenrettung all derer,
       die uns Texte mit einem Haufen TABs geschickt haben, mu ich echt
       mal zugeben, da es meistens nicht einmal auffllt, wenn das Proggi
       die dmlichen TABs reinsetzt. Es fllt erst auf, wenn im Platinum-
       Lister die komischen runden Kringel anstatt der TABs zu sehen sind.
       Wer uns "saubere" Texte schicken will, der benutze DELTAB, da
       dieser Platinum-Ausgabe beiliegt. Es ersetzt jedes TAB-Zeichen durch
       8 Leerzeichen. Viel mehr macht's nicht.
       Natrlich mt Ihr DelTab nicht benutzen. Wir selber jagen alle
       Platinum-Text-Dateien nochmal durchs DelTab, weil's einfach zu
       lstig war, die Dinger "per Hand" rauszulschen.
       
                                                          *** #Papst ***
    
   
  
  Nun einige Bemerkungen zu dem Artikel von Master Yoda ber die
  Programmierung
  in Assembler (bitte folgende Zeilen in eurem Mag verffentlichen):
  
  
  
  
  1. Die Behauptung Assembler auf dem PC zu erlernen sei schwer ist falsch.
     Auch ich habe jahrelang auf dem C64 in Assembler programmiert und mu
     sagen, das die Assembler-programmierung auf dem PC im Vergleich zum C64
     sogar noch einfacher ist.
  
  2. Natrlich gibt es gute und verstndliche Bcher zum Thema Assembler-
     programmierung auf dem PC.
     Es kommt nur darauf an welche art von Anwendungen man erstellen will.
     Als unbedingt erforderlich fr die Programmierung in Assembler halte ich
     folgende Bcher, welche ich auch selbst benutze:
  
     - PC-INTERN 3.0  von Data Becker ( ISBN 3-89011-591-8 )
  
     - 80386/486 - HANDBUCH FR PROGRAMMIERER von Microsoft Press
       ( ISBN 3-86063-200-0 )
  
  3. Zum Erlernen von Assembler empfehle ich folgendes Buch, welches wirklich
     leicht zu verstehen ist und zahlreiche Beispiele gibt:
  
     - DAS GROE Buch FR MASCHINENSPRACHE EINSTEIGER  von Data Becker
       ( ISBN 3-89011-150-5 )
  
  
                                                 Capella/ESCAPE COOPERATION
  
    
   
