Ich kenne mich mit C für AVRs relativ gut aus und habe ein wenig Erfahrung mit Objektorientierte Programmierung in C#. Mein Ziel ist es ein kleines Programm für einen Laserexposer zu schreiben. Dabei sollen Bild-Dateien geladen werden und die einzelnen Zeilen per RS232 an den Controller geschickt werden. Da das Programm auf einer relativ alten Krücke mit WinXP laufen soll und ich .Net vermeiden will, halte ich C++ für ein geeignetes Werkzeug. Kennt jemand ein gutes Tutorial für C++ wo man sich in GUI-Programmierung einarbeiten kann?
Dann schaue Dir mal Qt an (www.qt.io). Das ist gut dokumentiert und läuft auf älteren rechnern samt IDE brauchbar.
M. M. schrieb: > Kennt jemand ein gutes Tutorial für C++ wo man sich in > GUI-Programmierung einarbeiten kann? "C-API pur" würde ich mir heute für eine GUI nicht mehr antun. In deinem Fall wäre vielleicht ein leichtgewichtiger Wrapper (z.B. Win32++ oder WTL) geeignet.
M. M. schrieb: > habe ein wenig > Erfahrung mit Objektorientierte Programmierung in C#. Also hast du keine Ahnung von objektorientierter Programmierung. Qt ist quasi die Standardbibliothek für C++ (wie die glibc für C). Da solltest du dich mal einlesen. Es gibt auch genügend Hilfe dazu.
Klaus schrieb: > Qt ist quasi die Standardbibliothek für C++ (wie die glibc für C). bei dir vielleicht. andere verwenden z.b. wxWidgets.
Qt ist nicht die Standard Bibliothek für C++. Die Standardbibliothek von C++ heisst stdlib. Qt ist ein Framework zur Plattform übergreifenden Entwicklung grafischer Anwendungen. Die Qt Library kann als Alternative oder zusammen mit der stdlib verwendet werden. Sie Kapselt die Funktionen des Betriebssystems so, dass die Programmierung weitgehend unabhängig vom Betriebssystem ist. Im Idealfall kann ein einziger Quelltext sowohl unter Linux, als auch unter Windows, Mac-OS, Android und einige weitere Betriebssysteme compiliert werden. Als Beispiel mag man sich meine Demo-App zur Kommunikation mit µC anschauen, Screenshots und Download auf der Seite http://stefanfrings.de/net_io/index.html Man kommt allerdings trotz Qt nicht ganz drumherum, das Programm auf allen Zielplattformen zu testen und in Details anzupassen. So sehen normale Menüs z.B. unter Windows und Linux prima aus, aber auf einem Smartphone ziemlich Kacke. Und Geräte mit Touch-Screen haben keine rechte Maustaste und kein Drag&Drop. Dafür gibt es dort diverse Gesten, die ein gewöhnlicher PC (ohne Touch Screen) wiederum nicht unterstützt. Weiterhin gehört noch die Entwicklungsumgebung Qt Creator dazu. Man kann aber auch Microsoft Visual Studio benutzen. Im Prinzip kann man jede beliebige IDE benutzen, mit anderen wird die Einrichtung und Benutzung allerdings komplizierter. Qt Creator eignet sich auch zur Entwicklung von Programmen ohne grafische Oberfläche. Ich habe damit z.B. einen Webserver geschrieben. Ich mag an Qt, dass es in vielerlei Hinsicht wie die Java Laufzeitbibliothek funktioniert, aber in "echten" Maschinencode compiliert wird - also eben kein Java ist. >> Erfahrung mit Objektorientierte Programmierung in C#. > Also hast du keine Ahnung von objektorientierter Programmierung. Verstehe ich nicht. C# ist definitiv eine Objektorientierte Sprache, und zwar wie aus dem Lehrbuch. Objektorientiert geht gar nicht.
Stefan U. schrieb: > Qt ist nicht die Standard Bibliothek für C++. Die Standardbibliothek von > C++ heisst stdlib. Beim gcc heißt sie libstdc++. > Qt ist ein Framework zur Plattform übergreifenden Entwicklung grafischer > Anwendungen. Wobei man nicht auf grafische Anwendungen beschränkt ist. Man kann die graphischen Teile von Qt auch komplett weglassen (also gar nicht erst dazulinken) und z.B. einen Server damit programmieren.
Stefan U. schrieb: > Verstehe ich nicht. C# ist definitiv eine Objektorientierte Sprache, und > zwar wie aus dem Lehrbuch. Objektorientiert geht gar nicht. Richtig. Aber man kann sie auch wie ein Anfänger verwenden. Und dann kommt fast rein prozeduraler Code raus. Man merkt dann fast nix von der Objektorientierung. Klar, natürlich werden da eigentlich Methoden von Objekten implementiert und natürlich werden darin oft andere Objekte benutzt. Wirklich objektorientierte Programmierung ist aber doch noch was ganz anderes. So in der Art wird das wohl gemeint gewesen sein.
>Da das Programm auf einer relativ alten Krücke mit WinXP laufen soll und >ich .Net vermeiden will, halte ich C++ für ein geeignetes Werkzeug. Ich finde Java besser. Es ist deutlich einfacher als C++ und läuft auf jedem Rechner.
chris_ schrieb: >>Da das Programm auf einer relativ alten Krücke mit WinXP laufen > soll und >>ich .Net vermeiden will, halte ich C++ für ein geeignetes Werkzeug. > > Ich finde Java besser. Es ist deutlich einfacher als C++ und läuft auf > jedem Rechner. Echt? Kann ich ein Java Programm als eine einzelne ausführbare Datei ausliefern ohne, dass irgendetwas installiert werden muss? In C++ kein Problem....
rykomick schrieb: > Echt? Kann ich ein Java Programm als eine einzelne ausführbare Datei > ausliefern ohne, dass irgendetwas installiert werden muss? In C++ kein > Problem.... Ja. Näheres zu diesem nicht ganz trivialen Thema siehe hier: http://www.excelsior-usa.com/articles/java-to-exe.html
chris_ schrieb: > läuft auf jedem Rechner. Das wird irgendwie immer gerne behauptet, aber von den Java-Programmen, mit denen ich so bisher Kontakt hatte, funktioniert das mit so gut wie keinem.
M. M. schrieb: > [...] ich .Net vermeiden will [...] Und genau da liegt das Problem. Eine einfache GUI-Oberfläche ist nur mit einem Framework machbar. Willst Du .net nicht, musst Du dafür das nächste Framework ins Projekt ziehen, sei es Qt, GTK+, WxWidgets oder wie sie alle heißen. Gut, teilweise kann man die benötigten Teile vom Framework in die ausführbare Datei mit Linken, aber im Grunde bleibts eine Abhängigkeit. Will man sowieso eine Software nur für Windows erstellen, dann ist C# mit .net eigentlich eine gute Wahl, funktioniert auch unter Windows XP problemlos. Will man keine Abhängigkeit, dann bleibt nur der mühsame WinAPI-Weg. Ein reiner Wechsel des Frameworks bringt dann wenig, vorallem wenn man schon Erfahrung mit einem hat (Rein sportliche Gründe mal ausgenommen ;-) ).
M. M. schrieb: > da das Programm auf einer relativ alten Krücke mit WinXP laufen soll Wenn das auf einer 'alten Krücke' laufen soll, dann kann die Programmiersprache nicht alt genug sein. Nimm die WIN32 API. Lässt sich hervorragend mit dem Visual Studio programmieren (in Deinem Fall wohl die Visual Studio 2010 Express Edition). Hier gibt es auch noch einen echt tollen grafischen Editor: http://www.resedit.net/ Hier ist ein Beispiel dazu, als Grundlage sozusagen (Win32 Demo in C++): http://ahidlib.com/index.php/free-download Gruß Pit
Moin, Mit was für einem Tempo wird den Deine serielle Schnittstelle befeuert? Mich deucht, die Wahl der Sprache ist bei deinem Projekt nicht das entscheidende. Wenn du schon etwas C# kannst wirst du wahrscheinlich damit schnellere Programme schreiben als mit C++ Grüße. Nachdem den Programm eher so nach Dreizeiler (Achtung Übertreibung) klingt sollte es ja nicht so schwer sein mal einen einfachen Prototypen z erstellen und zu schauen ob's reicht. In C++ einzuarbeiten und in QT noch dazu... Viel Spaß das ist ein Riesen Brocken und Deine C Kenntnisse sind dabei nicht wirklich hilfreich. Grüße
Peter II schrieb: > Klaus schrieb: >> Qt ist quasi die Standardbibliothek für C++ (wie die glibc für C). > bei dir vielleicht. > > andere verwenden z.b. wxWidgets. Jap. Oder gtkmm. Oder FLTK, wenn es leichtgewichtig sein soll. Oder gar mit SDL selber zeichnen. Möglichkeiten über Möglichkeiten...
Ein Framework, das die eigentliche Frage des TO nach einem Tutorial zum Teil abdeckt: http://www.ultimatepp.org/ http://www.ultimatepp.org/app$ide$GettingStarted$en-us.html
Autor: Rolf Magnus (rmagnus) >chris_ schrieb: >> läuft auf jedem Rechner. >Das wird irgendwie immer gerne behauptet, aber von den Java-Programmen, >mit denen ich so bisher Kontakt hatte, funktioniert das mit so gut wie >keinem. Das ist seltsam, bei mir funktioniert das mit meinen selbst geschriebenen Programmen die ganze Zeit. Die Programme laufen alle ohne Änderung auf Win, Linux, Mac, RasPi. Mache ich am Ende irgendwas richtig?
chris_ schrieb: > Mache ich am Ende irgendwas richtig? Mag sein. Schade, dass du da anscheinend der einzige bist.
> Mache ich am Ende irgendwas richtig?
Ja, du setzt vermutlich nicht voraus, dass ein ein Laufwerk mit Namen
"C:\" gibt.
Es ist wirklich peinlich, wie viele Java Anwendungen an diesem und
ähnliche Kleinkram scheitern.
Stefan U. schrieb: >> Mache ich am Ende irgendwas richtig? > > > Ja, du setzt vermutlich nicht voraus, dass ein ein Laufwerk mit Namen > "C:\" gibt. > > Es ist wirklich peinlich, wie viele Java Anwendungen an diesem und > ähnliche Kleinkram scheitern. Dann liegt es freilich an der Dummheit der Programmierer. Nicht an Java selbst.
>Ja, du setzt vermutlich nicht voraus, dass ein ein Laufwerk mit Namen >"C:\" gibt. >Es ist wirklich peinlich, wie viele Java Anwendungen an diesem und >ähnliche Kleinkram scheitern. Peinlich aber auch das Wissen einiger Foristen. Wenn oben geschrieben wird, dass die Java Programme auf Win, Mac, Linux und RasPi laufen: Wie viel Computerkenntnisse braucht man eigentlich, um zu wissen, dass es bei Linux kein c: gibt?
Fred schrieb: > Peinlich aber auch das Wissen einiger Foristen. Da sagst du was: > Wie viel Computerkenntnisse braucht man eigentlich, um > zu wissen, dass es bei Linux kein c: gibt? Wenn man ein LW über einen alias mounted, gibt es sehr wohl auch "c" und zwar sowohl für linux- als auch Windows-Partitionen. Les- und schreibbar :-) Peter II schrieb: > andere verwenden z.b. wxWidgets. Und zwar nicht wenige! Auch ich habe früher viel damit gemacht. Besonders nett fand ich den wxDesigner, wo man die Menüpunkte aus dem Programm selbst heraus anlegen und editieren konnte. War das Menü fertig, hat man es einfach gespeichert. http://freecode.com/projects/wxdesigner Scheint aber nicht mehr gepflegt zu werden.(???) wxWidgets als solches wird aber noch vorangetrieben, gab erst kürzlich ein Release. Früher war das das Einzigste, was es an freien Libs auf dem Sektor gab. QT war ja zunächst nicht frei. Was serielle Programmierung anging, habe ich damals mit der CTB-LIB gearbeitet. Auf der Webseite des Entwicklers gibt es auch noch meine Doku zum Laden: https://iftools.com/download/ctb/spmdwx.pdf Unter Linux waren damals schon 460k an Datenrate drin!
Stefan U. schrieb: > Ja, du setzt vermutlich nicht voraus, dass ein ein Laufwerk mit Namen > "C:\" gibt. Hat nicht mit Java zu tun, aber passt so gut: Ich bin mir noch nicht sicher, ob ich lachen oder weinen soll, wenn ich merke, dass das blöde Acrobat-Plugin für Firefox mal wieder in meinem Homeverzeichns eine Datei namens "C:\nppdf32Log\debuglog.txt" angelegt hat. Stefan U. schrieb: > Es ist wirklich peinlich, wie viele Java Anwendungen an diesem und > ähnliche Kleinkram scheitern. Oft scheitert es ja schon daran, dass das Java-Programm in ein Installer.exe gesteckt wurde und dann nach der Installation über irgendwelche verschlungenen Verkettungen von .bat- und .exe-Files gestartet wird. Mark B. schrieb: >> Es ist wirklich peinlich, wie viele Java Anwendungen an diesem und >> ähnliche Kleinkram scheitern. > > Dann liegt es freilich an der Dummheit der Programmierer. Nicht an Java > selbst. Naja, wenn da fast alle dran scheitern, sagt das auch was über die Sprache aus.
Rolf M. schrieb: > Mark B. schrieb: >> Dann liegt es freilich an der Dummheit der Programmierer. Nicht an Java >> selbst. > > Naja, wenn da fast alle dran scheitern, sagt das auch was über die > Sprache aus. Wenn der Bauer nicht schwimmen kann, ist die Badehose dran Schuld ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.