W.Spiess: C C++ - reie Compiler

Das Problem von Achim Bülthuis muesste sicher als Consolanwendung zu erledigen sein.
Nachdem die Anfrage vom Okt. 1999 war ist das Problem sicher schon abgehackt.

Zum Thema C/C++ Compiler habe ich aber ein paar Infos:

Die Lcc-win32 kann Code für Programme mit der grafischen Bedienoberfläche oder für die Kommandozeile (Console-Anwendung) erzeugen und ausserdem Dynamic Link  Libraries (DLLs).
Die Zeitschrift ct' stellt unter http://www.heise.de/ct/shareware/99/25/262.shtml die Eigenschaften des Compilers komplett vor.

Ausserdem kann ich z.B. das Werk C++ in 21 Tagen von Mr. Liberty empfehlen (Verlag Markt und Technik) Die neueste Auflage dieser BuchSerie bezieht sich auf MS-VC 6.0 und hat die  Visual C 6.0 Introductory Version auf CD beiliegen.
Auch mit reinem ANSI -C koennen ueber das Windows-API Programme mit grafischer Benutzeroberflaeche geschrieben werden. Erster Compiler mit diesem Feature war der MS-C6 mit dem Windows SDK. Die MS-C Version 7.0 und Visual C 1.0 bis 1.5 setzen standardmeassig  auf dieses ANSI-C SDK auf, um 16-Bit Applikationen zu erzeugen (Grafik und Konsolanwendungen). Ausserdem lagen ab Visual C 1.0 die MS Foundation Classes für 16 Bit Windowsapplikationen bei. Ab Visual C 2.0 unterstuetze Microsoft dann nur noch 32 Bit Applikationen. Diese koennen consol- oder grafiskorientiert sein
Zu dem Themenkomplex gibt es von Th. Lauer eine Ansi-C Serie in der C'T.
Wie der Name Foundation classes (MFC) schon sagt "muss" dies etwas mit objektorientiertem C++ zu tun haben. Diese MFC erleichert ungemein die Programmierung einer grafischen win-32 Anwendungen. Zum Einstieg in die Windowsprogrammierung mit der MFC kann ich nur die Artikelserie aus der CT "Klassenarbeit", Andreas Siering (ab c't 1998 S.166 und dolgende Hefte) die MFC Programmierung empfehlen. Man sollte zum nachvollziehen z.B. einen Visual C/C++ Compiler ab 3.0 zur Verfügung haben.

Eine Alternative zu MS C/C++ Compilern bietet Borlandetet auf seinen Web-Seiten. Unter der
URL http://www.borland.com/bcppbuilder/freecompiler/ kann nach einer on-line Registrierung die Version 5.5 des C/C++ Compilers gealden werden.

Vielleicht hat noch jemand dazu Anmerkungen.
Zur Zeit beschäftige ich mit einem Projekt zur Officeautomatisierung und der funktionellen Erweiterung von EXCEL via DLL's.

gruss Wolfgang

Anmerkung:
Mein Beitrag soll keine "Schleichwerbung" sein, auch nicht für MS Produkte !
Bei allen berichtigten und unberechtigten Zweifeln an MS, aber deren C Compiler waren schon immer stabile und durchdachte Produkte.

  1. Hallo Wolfgang!

    Vielleicht hat noch jemand dazu Anmerkungen.

    Eine Anfrage: ich habe den BCC5.5 heruntergeladen, komme aber nicht weiter als eine einfache Win-Applikation mit ein paar Libraries zu kompilieren. (Das musste ich mir glaube ich auch aus Beispielen zusammenklauben.) Die Kommandozeilenhilfe und die Dokumentation, die dabei ist, ist nicht nennenswert hilfreich, wenn ich vorhabe, DLLs zu kompilieren. Gibt es andere Quellen über den Compiler von Borland?

    bis nextens (nexte Schullektion steht bevor *g*)
    xitnalta

    1. Hallo Wolfgang!

      Eine Anfrage: ich habe den BCC5.5 heruntergeladen, komme aber nicht weiter als eine
      einfache Win-Applikation mit ein paar Libraries zu kompilieren.

      Ich denke es sind Dokument/View- und/oder Dialogbased Applikationen. Die helfen Dir wahrscheinlich
         bei der  Lösung des Problems DLL-Erstellung nicht.
      »»(Das musste ich mir glaube ich auch aus Beispielen zusammenklauben.)
      »»Die Kommandozeilenhilfe und die Dokumentation, die dabei ist, ist nicht nennenswert hilfreich,
         Das stimmt die ist wirklich sehr dünn
      »»wenn ich vorhabe, DLLs zu kompilieren.
      »»Gibt es andere Quellen über den Compiler von Borland?
      Ja , ich habe in anderen Foren zu Borland Projekten schon einiges gefunden. Ich werde diese einmal
      zusammenstellen. Vorher erst einmal ein paar Fragen:
      Ich will natürlich nicht eine Unmenge, für dich nutzlose Informationen, sammeln. Man muss zunaeschst
      einmal wissen, welche Art von DLL du erstellen möchtest.
      Du bekommst heute noch eine MAIL von mir, aus der Du etwas Hintergrundinfo beziehen kannst.
      Es gibt da nämlich :
      a.)sog. Standard-DLL für das C-API je nach Aufruftyp im PASCAL fixed params Format,
      Du kannst eine solche DLL z.B in Visual Basic einbinden. Die  Funktionen in der DLL haben
      das sog. stdcall-Attribut (frueher PASCAL) und können so von z.B. VB als externe Funktionen
      aufgerufen werden.
      b.)MFC-Erweiterungs-DLL (natuerlich nur in Verbindung mit den MS klassenbibliotheken) nutzbar,
      c.)Automatisierung-DLLs nach DDE/OLE1 bzw. OLE2 ActiveX-Technologie auf der MS seine COM Schnittstellen
      aufbaut. Z.B. kannst Du mittels MS-EXCEL/Word als Client einen Automation-Servers in Form einer DLL
      aufrufen und durch den eingebauten Visual-Basic-Interpreter Daten mit dem Server austauschen. Dies wird
      in Form eines OLE-Dispatch-Mechanismus realisiert.
      Allerdings sind das zunächst einmal Infos aus der MS Compiler Welt

      Borland setzt meines Wissen auch eigene Konzepte ein. Das werden hlat mal prüfen müssen.

      bis nextens (nexte Schullektion steht bevor *g*)
      xitnalta

      bis bald Wolfgang

      1. Hallo Wolfgang!

        Du bekommst heute noch eine MAIL von mir, aus der Du etwas Hintergrundinfo beziehen kannst.

        Die habe ich erhalten, ist aber ziemlich lästig, dass ich dir nicht direkt antworten konnte:

        <***** mail *****>

        Hallo Wolfgang (was jetzt... John oder Wolfgang? *g*)

        Schreib mir doch bitte , was dein Ziel ist. Ich werde dann etwas
        zusammenstellen

        Zuerst mal grossen Dank für die umfangreiche Erklärung, was das Konzept

        von

        DLLs überhaupt ist. Ich konnte meinen Horizont dadurch noch etwas

        erweitern,

        obwohl ich vielleicht ein paar Wenigkeiten (oder Begriffe) nicht auf

        Anhieb

        verstand :o).

        Mein Ziel ist es, zuerst mal ein simples C(++)-Beispiel, welches mit einer
        Beispiel-DLL arbeitet, mit den Borland Compiler 5.5 Kommandozeilentools zu
        kompilieren. Ich frage mich nämlich allmählich, wieso denn die Leute von
        Borland in der bcc32 /? - Seite nicht auch einfach die Option zum

        Erstellen

        einer DLL (notfalls mit diesen komischen Importbibliotheken *g*) angegeben
        haben. Ist wahrscheinlich ganz einfach viel komplizierter, als ich glaube
        *g*.

        Ich hätte gerne ein wenig Hilfe dabei, vielleicht weisst du ja auch eine

        URL

        für Borland-Kommandozeilentools-Anfänger wie mich :o).

        bis nextens
        xitnalta

        </***** mail *****>

        Es gibt da nämlich :
        a.)sog. Standard-DLL für das C-API je nach Aufruftyp im PASCAL fixed params Format,
        Du kannst eine solche DLL z.B in Visual Basic einbinden. Die  Funktionen in der DLL haben
        das sog. stdcall-Attribut (frueher PASCAL) und können so von z.B. VB als externe Funktionen
        aufgerufen werden.

        ich glaube, _das_ ist es... auf keinen Fall Herstellerabhängig! Und wenn das das einzige ist von den drei Möglichkeiten, ist es das garantiert, was ich meine.

        b.)MFC-Erweiterungs-DLL (natuerlich nur in Verbindung mit den MS klassenbibliotheken) nutzbar,
        c.)Automatisierung-DLLs nach DDE/OLE1 bzw. OLE2 ActiveX-Technologie auf der MS seine COM Schnittstellen
        aufbaut. Z.B. kannst Du mittels MS-EXCEL/Word als Client einen Automation-Servers in Form einer DLL
        aufrufen und durch den eingebauten Visual-Basic-Interpreter Daten mit dem Server austauschen. Dies wird
        in Form eines OLE-Dispatch-Mechanismus realisiert.
        Allerdings sind das zunächst einmal Infos aus der MS Compiler Welt

        Borland setzt meines Wissen auch eigene Konzepte ein. Das werden hlat mal prüfen müssen.

        bis nextens (nexte Schullektion steht bevor *g*)
        xitnalta
        bis bald Wolfgang

        und nochmals vielen Dank für die Infos... jetzt bräuchte ich noch die URLs von Foren über den Borland C Compiler und evtl. noch was für windows-api-prog-dummies *g*

        bis nextens
        xitnalta

        1. Hallo Wolfgang!

          Hallo Felix
          Ich habe bisher (leider) nur das codeguru Forum duchsucht. Zur DLL-Programmierung mit Borland(inprise)
          war da leider nichts zu finden.
          Aber bei Inprise selbst wurde ich fündig. Evtl kannst Du damit auch direkt etwas anfangen.

          URL: http://www.inprise.com/ gib in Search-Feld "DLL programing" ein. Dann bekommst
          Du eine Menge Beispiel-code. Ich hab's schon mal durchgeforstet. Interessant scheint mir der Artikel
          Technical Information Database:

          TI2195C.txt   How to Build and Use a Simple DLL
               Category   :General
               Platform    :All
               Product    :C/C++  All
          Solltest Du den Artikel nicht finden, so kann ich Dir auch nochmal eine MAIL senden

          xitnalta
          bis bald Wolfgang
          xitnalta

          bis bald,
          gruß Wolfgang

  2. hi!

    Nachdem die Anfrage vom Okt. 1999 war ist das Problem sicher
    schon abgehackt.

    Es heißt "abgehakt". Normalerweise sind mir die Rechtschriebfehler egal,
    aber dieser hier ist wirklich lästig. Ob es überhaupt Menschen gibt, die
    dieses Wort richtig schreiben können? ;)

    Diese MFC erleichert ungemein die Programmierung einer grafischen
    win-32 Anwendungen.

    Das sei dahingestellt, auch wenn der Compiler - und besonders der
    Editor von Visual C++ 6 - gut sein mag.

    Vielleicht hat noch jemand dazu Anmerkungen.

    GNU C/C++ wurde ebenfalls auf Windows und MS-DOS portiert und ist
    frei verfügbar:

    DJGPP: GNU C auf 32-Bit DOS, kann also DPMI-Anwendungen
    erstellen.
    http://www.delorie.com/djgpp/

    Cygwin/Cygnus C++: GNU C auf Windows 9X/NT/2000, inkl. WinAPI-
    Unterstützung.
    http://sourceware.cygnus.com/

    bye, Frank!

  3. Hallo Wolfgang,
    ich habe den Internetzugang leider nur hier im Gymnasium .
    Ich häkele (*/ "ck"/*, kleiner Scherz am Rande) mir gerade mein erstes windowsprogramm. Ich benutze
    Visual C/C++ von KleinWeich hier in der Schule. Damit scheinst Du ja mehr mit zu arbeiten.
    Ich habe mir das Buch Messen,Steuern und Regeln mit Word und Excel gekauft. Du schreibst ja immer
    wieder von einer Datentransfer zwischen zu diesen Officeprogrammen.
    Da ich mich in Excel durch die Schule schon recht gut auskenne, würde ich mich jetzt gerne mal an
    richtige Programmierung heranwagen.
    Im Buch wir eine DLL beschrieben. Leider aber nicht wie man sie erstellt. Als ich WEB mal gesucht habe,
    fand ich nur die Info, dass der Autor die Sources nicht freigegeben hat.
    Wie soll ich vorgehen ?

    gruss Wolfgang

    gruss max *g*
    P.S. Am Dienstag bin ich wieder on-line. Evtl kannst Du mir bisdahin schon mal einen tip geben

    1. Hallo Max,

      ich habe den Internetzugang leider nur hier im Gymnasium .

      Seit ihr am Samstag in der Schule ???????

      Ich häkele (*/ "ck"/*, kleiner Scherz am Rande) mir gerade mein erstes windowsprogramm. Ich benutze
      Visual C/C++ von KleinWeich hier in der Schule. Damit scheinst Du ja mehr mit zu arbeiten.

      (Ich würde sogar sagen Ganz-Klein-Weich *grins*) Ich häkle nicht, ich stricke meine
      Programme (*/ "ck"/*, kleiner Scherz am Rande), denn ich habe weder ein Hackbrett noch eine
      Hackennase.

      Ich habe mir das Buch Messen,Steuern und Regeln mit Word und Excel gekauft. Du schreibst ja immer
      wieder von einer Datentransfer zwischen zu diesen Officeprogrammen.

      Das Buch kenne ich (leider) nicht. Ich nehme aber an, es wird sich bei der von Dir benutzten DLL um eine
      sogenannte Standard-DLL  oder um einen Automation-Server mit IDispatch Datenaustausch handeln.

      Da ich mich in Excel durch die Schule schon recht gut auskenne, würde ich mich jetzt gerne mal an
      richtige Programmierung heranwagen.
      Im Buch wir eine DLL beschrieben. Leider aber nicht wie man sie erstellt. Als ich WEB mal gesucht habe,

      »»  fand ich nur die Info, dass der Autor die Sources nicht freigegeben hat.
      Verständlich, wenn man bedenkt wieviel Arbeit teilweise in der Programmentwicklung steckt.

      Wie soll ich vorgehen ?

      Als denn, es ist etwas schwierig in diesem Rahmen den "Einstieg" zu finden.
      Ich wuerde Dir zunaechst mal empfehlen einen EMAIL-Account irgendwo zu besorgen. Denn nur so kann
      ich Dir später einmal Beispiel-Source-Code senden.
      Sieh zunächst mal nach, in welcher Form die DLL eingebunden ist. Wird im VB-Code von EXCEL :
      a.) irgendwo ein Createaufruf verwendet, um ein Objekt anzulegen, so handelt es sich bei deiner
      "Buch-DDL" höchstwahrscheinlich um eine Autmation- DLL.
      b.)Ist irgendwo zu Beginn des VB-Scriptes eine Funktion(IRGENDEINEFUNKTION) einer
      DLL(IRGENDEINE.DLL) in der Form :    DECLARE Sub IRGENDEINEFUNKTION lib "IRGENDEINE.DLL"
      definiert, so liegt wohl eine Standard-DLL mit PASCAL (_stdcall) Aufrufkonventionen vor.

      P.S. Am Dienstag bin ich wieder on-line. Evtl kannst Du mir bisdahin schon mal einen tip geben

      Das hab' ich wohl geschafft. Jetzt bist Di wieder dran
      Wolfgang

  4. hi wolfgang,

    Die Lcc-win32 kann Code für Programme mit der grafischen Bedienoberfläche oder für die Kommandozeile (Console-Anwendung) erzeugen und ausserdem Dynamic Link  Libraries (DLLs).
    Die Zeitschrift ct' stellt unter http://www.heise.de/ct/shareware/99/25/262.shtml die Eigenschaften des Compilers komplett vor.
    Eine Alternative zu MS C/C++ Compilern bietet Borlandetet auf seinen Web-Seiten. Unter der
    URL http://www.borland.com/bcppbuilder/freecompiler/ kann nach einer on-line Registrierung die Version 5.5 des C/C++ Compilers gealden werden.

    ich habe noch einen nachtrag zu freien compilern c/c++.
    unter der gnu public license <www.gnu.org> gibt es das gnu c/c++.
    allerdings fehlen in der grundausstattung jegliche windows-api-
    erweiterungen. ich habe damit schon einige consolanwendungen geschrieben.
    es waere mal interessant nach windows-api dafuer zu suchen.

    leo

    1. Hallo

      ich habe noch einen nachtrag zu freien compilern c/c++.
      unter der gnu public license <www.gnu.org> gibt es das gnu c/c++.
      allerdings fehlen in der grundausstattung jegliche windows-api-
      erweiterungen. ich habe damit schon einige consolanwendungen geschrieben.
      es waere mal interessant nach windows-api dafuer zu suchen.

      Es gibt bei http://www.delorie.com/ diverse Erweiterungen für djgpp (gnu c für dos) und das hier auch angesprochene Cygnus hats bereits drin... (http://www.cygnus.com/)

      Ah ja, es gibt noch "mingw32", auch gnu c für Windows... schau mal bei http://www.freewareguide.de/ nach, da hab ichs gefunden...

      bix nextens
      xitnalta