C C++ - reie Compiler
W.Spiess
- programmiertechnik
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.
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
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
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
zusammenstellenZuerst 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 WeltBorland 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
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
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!
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
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
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
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