Forum: PC-Programmierung Einfache windows programme schreiben


von Thorsten (Gast)


Lesenswert?

Hi,

ich möchte mich jetzt mal daran versuchen, ein einfaches Windows
Programm zu schreiben. Das Ziel ist es Bilder über die RS Schnittstelle
an meinen µC zu schicken, um diese dann auf einem Display anzeigen zu
lassen. Kennt jemand eine einfachen C Compiler für Win 98?

Gruß

Th.

von compileritis (Gast)


Lesenswert?

bloodshed.net

von Andreas W. (Gast)


Lesenswert?

Pelles C ist auch nicht schlecht und hat einen Resource Editor:
http://www.smorgasbordet.com/pellesc/

von Jens P. (jmoney)


Lesenswert?

Wenn's nicht unbedingt c sein muss, schau dir doch mal Delphi an. Sehr
leicht zu lernen und es gibt auch viel Hilfestellung und fertige
Packages im Netz dazu. Damit muss man nicht alles von Hand zu Fuß
machen wie teilweise in C.
Ich will keinen Glaubenskrieg anfangen, ob nun C gut ist oder schlecht.
Wollte es nur mal für Thorsten erwähnen..

von Christoph _. (chris)


Lesenswert?

bloodshed.net, also Dev-C++, ist ziemlich veraltet. Den sollte man nur
nehmen, wenn man ganz genau weiß, wieso.
Nimm besser Code::blocks oder Microsoft Visual Studio 2005 Express;
beides gibt es kostenlos, aber letzteres läuft evtl. nicht auf Win98.

von Thorsten (Gast)


Lesenswert?

Wenn Du nicht auf C oder C++ festgelegt bist, kannst Du Dir mal Tcl/Tk
angucken. Tcl/Tk ist eine Interpretersprache, mit freewrap können auch
executables erstellt werden. Ist nicht so schnell wie kompilierter
Code, für serielle Kommunikation aber locker ausreichend. Grosser
Vorteil: Wenn man sorgfältig programmiert, läuft der Code auch auf
anderen Plattformen (Linux, Solaris etc.).
Gruss,
Thorsten (nicht der OP)

von Schoasch (Gast)


Lesenswert?

Ich benutze für meine Windowsprogramme immer LabWindows/CVI von National
Instruments. Diesen Compiler kann ich nur empfehlen. Damit kannst du so
ziemlich alles mit deim Computer anstellen was du willst... und auch
unter XP. Der kostet aber leider etwas... aber ich glaube es gibt wo
Demos zum Testen...und ausserdem muss es ja nicht immer die neueste
Version sein.

http://www.ni.com/lwcvi/

von Thorsten (Gast)


Lesenswert?

Hi.

erstmal danke für eure Antworten. Jetzt hab ich wohl die Qual der Wahl,
wobei ich ja sagen muss das ich erstmal keinen Plan hab wo ich da
anfangen soll. Da ich ja erstmal nur eine Anwendung (s.o.) benötige,
wäre in all diese Programme die Einarbeitungszeit meiner Meinung nach
ziemlich hoch.

Ich schau jetzt mal was ich da mchen werde.

Gruß

Th.

von Thomas (Gast)


Lesenswert?

Ich will mal noch meinen Senf dazugeben :-)

Nimm nur dann C, wenn's wirklich sein muss. Auf nem Windows ist das
vermutlich nicht der Fall ;) Lieber gleich objektorientiert anfangen
mit C++ oder C# oder da es noch nicht gesagt wurde java...

Ansonsten für C/C++ würde ich auch Code::blocks statt bloodsheed
empfehlen. Für C# gibts noch den freien Sharpdevelop. Wenn's bei der
einfachen Aufgabe bleibt ist TCL/TK vieleicht auch eine Überlegung
wert. Da ist die Einarbeitungszeit vermutlich am kürzesten.

Wenn du "Progammierkenntnisse" als längerfristige Investition siehst,
kann C++/C# nicht schaden (was aber nicht heissen soll, dass man nicht
trotzdem mit TCL anfangen kann ;-) Auf jeden beim Lernen nicht auf
reines C spezialisieren...

Ach ja, um die Auswahl noch zu erweitern. VB (Visual Basic) soll auch
recht einfach sein und dazu gibt's vermutlich auch ein kostenloses
Visual Studio Express.

von arc (Gast)


Lesenswert?

Kommt drauf an was du schreiben willst!
Einfache Konsolenanwendungen:
gcc/lcc bzw. eine der vielen Verpackungen ala Dev-Cpp oder wenn's
schnell gehen soll eine Skriptsprache wie Ruby oder Python nach Wahl

Bei umfangreicheren Programmen (und/oder mit Benutzerschnittstelle):
Nur unter Windows lauffähig bzw. mit Einschränkungen portabel: Visual
C# oder SharpDevelop2, alles andere, insbesondere direkte Win32 oder
MFC-Programmierung, empfiehlt sich - ums mal freundlich zu sagen -
nicht
Crossplattform: Java, QT mit einem Compiler nach Wahl oder bei
kleineren Sachen auch FLTK oder wxWindows + Compiler/Sprache nach Wahl

Zwar nicht sehr verbreitet, aber für (den Einstieg in)
objektorientierte Programmierung sehr zu empfehlen: Smalltalk z.B. die
Community Edition von Dolphin Smalltalk

Für die genannte Aufgabenstellung würde ich in deinem Fall (Win98) wohl
SharpDevelop2 nutzen.

Python
http://www.python.org/
Libs für alles Mögliche
http://www.vex.net/parnassus/

Ruby
http://www.ruby-lang.org/en/
http://rubyforge.org/softwaremap/trove_list.php

Visual C# (nur ab Win2000)
http://msdn.microsoft.com/vcsharp/

SharpDevelop
http://www.icsharpcode.net/OpenSource/SD/Download/

Dolphin Smalltalk
http://www.object-arts.com/content/navigation/home.html
http://www.object-arts.com/docs/index.html?whats_new.htm

von Blackbird (Gast)


Lesenswert?

Zitat:
"... daran versuchen, ein einfaches Windows Programm zu
schreiben..."

Und die Vorschläge der "Experten"?

Gleich die volle Dröhnung.

Damit ist der Fragesteller so ausgelastet, dass er nie wieder Zeit hat,
sich seinem eigentlichen Ziel zu widmen: Zitat: "... Bilder über die RS
Schnittstelle an meinen µC zu schicken ..."

Er hat nicht geschrieben, dass er sich zum künftigen Progammier-Guru
entwickeln will, nein, nur etwas Windows-Programmierung.

Warum soll das nicht mit C und WinApi, gemixt mit C++ oder mit VB, VBA
und DLLs erfolgen. C und WinApi können alle Windows-kompatiblen
C-Compiler.
Das Hauptproblem wird aber nicht C, C++, C# oder sonst irgendeine
Sprache werden, sondern die Philosophie hinter Windows, besonders wenn
es um Grafik, Schnittstellen, Threads und Timer geht. Und da hilft ihm
keiner der angegeben Compiler richtig weiter (mit Erklärungen).


Blackbird

von Nobody (Gast)


Lesenswert?

C auf dem PC ist die Pest, wennns übers GUI laufen soll.
Schnell zum Ziel kommt man z.B. mit Purebasic, zwar "nur" ein Basic
aber der Compiler kann es von der Speed her mit C dicke aufnehmen,
ausserdem sind die Zeiten von Zeilennummern und "goto" bei Basic
schon lange vorbei.

von Blackbird (Gast)


Lesenswert?

Zitat:
"C auf dem PC ist die Pest, wennns übers GUI laufen soll."

Ist diese Aussage nicht etwas subjektiv?

Blackbird

von Wolfram (Gast)


Lesenswert?

@Torsten:
Da du explizit nach C- Compiler fragst , nehme ich an du hast schon
Erfahrungen mit C.
Prinzipiell kannst du jeden der obengenannten C-Compiler nehmen.
Wie schon angemerkt muss man wenn man in C unter Windows programmiert
Ahnung von den internen Abläufen haben. Dies kannst du erstmal umgehen
in dem du nur Programme für die Kommandozeile schreibst. Wenn du
sowieso nur Bilder an den Mikrocontroller über die serielle übertragen
willst, reicht das vollkommen. Da reicht das Wissen was jedes C-Buch
(egal für welches Betriebssystem) vermittelt.

von Thomas (Gast)


Lesenswert?

Hoi Blackbird.

Ja! Ein einfaches GUI-Programm unter Windows macht er auf jeden Fall
schneller, wenn er nicht C nimmt, da kann ich nobody nur zustimmen.
Da ist er mit allen anderen vorgeschlagenen Lösung schneller dabei,
angefangen von C# über Visual Basic bis TCL/TK. Wer sich für GUI auf
einem PC mit C quält ist einfach selber Schuld.

Compiler helfen ihm aber auch bei C nicht weiter... Kein Argument, was
du da bringst. Eine "moderne" IDE bsp. angeführtes Visual Studio
Express oder Sharpdevelop wartet aber mit relativ guten und
umfangreicher Dokumentation und Hilfe auf...

Das nach C gefragt wird, kann bedeuten, dass der OP sich mit C schon
auskennt. Muss es aber nicht, kann ja auch sein, dass er das nur mal wo
aufgeschnappt hat (no offense!) und da muss es erlaubt sein, "bessere"
Lösungen (besser ist immer auch etwas subjektiv) zu empfehlen. Dazu ist
diese Platform ja da.

von Kola (Gast)


Lesenswert?

Also, ich würde Java nehmen.

mit 3 Zeilen hast du ein Bild aus den gebräuchlichen Formaten geladen,
dann kannst du einfach die Pixel auslesen, und für die serielle
Schnittstelle gibt es Bibliotheken. Java gibt dir meines Erachtens die
größte Abstraktion (mit C# kenne ich mich nicht aus, deshalb nix dazu).

Smalltalk ist sicher produktiv, aber für Einsteiger und für diese
Aufgabenstellung nicht geeignet.

Aber nimm das, womit du dich wohlfühlst, denn libs gibts für fast jede
Sprache!

von arc (Gast)


Lesenswert?

Noch mehr OT:
In C# könnte man es z.B. so lösen:

// ohne using
// Bild laden (egal ob JPEG, Bitmap, PNG etc.)
System.Drawing.Bitmap bmp = new
System.Drawing.Bitmap("x:\filename");

// Bitmap auslesen z.B. mit bmp.GetPixel(x, y) und passend umwandeln

// übertragen
System.IO.Ports.SerialPort port = new
System.IO.Ports.SerialPort("COM1", 115200);

// u.U. restliche Parameter der Seriellen einstellen Handshake etc.
port.Open();

// Daten übertragen
port.Write(...);

port.Close();

von Sebastian (Gast)


Lesenswert?

Ich habe recht lang in C Windows-GUI-Programme geschrieben (war zu faul,
 auf C++ umzusteigen). Ich Idiot.

Habe jetzt kürzlich www.wxwidgets.org gefunden und mache jetzt meine
GUI-Programme in der Hälfte der Zeit. Reines C mit WINAPI ist einfach
zu kompliziert. Den Schritt hätte ich viel früher gehen sollen. Setzt
aber Objektorientierung zwingend voraus.

Und: Ja, wxWidgets hat einen Fokus auf Cross-Platform, den nutze ich
aber nicht. Ich schreibe nur für Windows. Aber es ist nett zu wissen,
dass man nicht auf Windows angewiesen ist, damit seine Programme in
Zukunft noch laufen.

Wenn Du doch reines C nehmen willst: PellesC ist IHMO der beste freie
Compiler für diesen Zweck. Die IDE ist hervorragend.

Für wxWidgets gibt es besseres: DialogBlocks in Verbindung mit dem GCC
oder dem freien MS Compiler zum Beispiel. In Zukunft vielleicht auch
CodeBlocks.

Must halt mal schauen, womit Du Dich wohl fühlst.

Sebastian

von Weinga-Unity (Gast)


Lesenswert?

So mal in den Raum gefworfen: C++, RS232 und GUI und
Plattformunabhängig
 - MINGW mit DEVCPP für C++
 - FLTK für GUI
 - rlserial für Serielle Schnittstelle (auch erst vor 2 Tagen selber
gefunden, funktioniert super)
   (einfach googlen nach den Schlagwörtern, sollte man schnell finden)

Alles probiert, alles geht, sollte in 10 Min machbar sein, als Anfänger
die FLTK-Beispiele umzubauen und z.B. per Knopf-Druck ne Serielle
aufzumachen, einige Bytes zu schicken und wieder zuzumachen.

mfg Weichinger Klaus
www.weinga-unity-uni.at.tt
www.weinga-unity.at.tt

von Blackbird (Gast)


Lesenswert?

Um ein Bild über die serielle Schnittstelle auf irgendein Gerät, z.B. µC
zu laden, braucht man keinen einzigen der aufgeführten  Vorschläge -
Hyperterm genügt.

Die Fragestellung des Thread-Erstellers läßt doch alle Spekulationen
zu, sie verrät nichts über den Wissenstand und die Wünsche, wie es
weitergehen sollte.

Statt nachzufragen wurden spekulativ die eigenen Wünsche und
Vorstellungen hineininterpretiert und so sahen auch die Ratschläge
aus.

Meine Postings haben nichts mit einer Wertung der einzelnen Vorschläge
zu tun - auch diesem Mißverstehen eurerseits muß ich hier
entgegentreten.

Und das ich C für Win-GUIs favorisiere - wo ist denn das her?

Um es noch mal auf den Punkt zu bringen: Statt an Hand der etwas
laienhaften Frage noch mal nachzufragen, dann gleich die "volle
Dröhnung" anzubieten, in keine Hilfe gewesen.

Blackbird

von Christoph Baer (Gast)


Lesenswert?

Bin zufällig auf diese seite gestossen, vielleicht kann ich nachträglich
auch noch einen tipp geben. Wie wäre es mit Open Watcom c/c++. Gratis,
effizient, bietet alles was man braucht.
http://openwatcom.mirrors.pair.com/

von Frank (Gast)


Lesenswert?

[x] Python und pySerial

Sehr einfach und schnell zu programmieren, plattformunabhängig, gut.
Mit TKinter gibts auch noch die Möglichkeit eine GUI zu erstellen.

von Johnny (Gast)


Lesenswert?

Ich denke mal als Anfänger wirds mit einem Komplettpacket à la  Visual
Studio C# oder VB .NET 2005 Express Edition (kostenlos) am meisten
Spass machen.
Es gibt unzähligen Beispielcode zu allen erdenklichen Aufgaben im
Internet. Ausserdem ist die Doku sehr umfangreich und ein super
Debugger ist ebenfalls integriert. Ein GUI lässt sich mit der Maus
zusammenklicken und für die serielle Schnittstelle ist auch eine
fixfertige Komponente vorhanden, welche sehr sehr einfach integriert
und benutzt werden kann.
Man bekommt nach dem Build eine .exe Datei, welche auch Freunden
geschickt werden kann oder auf anderen PC's laufen gelassen werden
können (sofern .NET Framework installiert, ansonsten per Windows update
schnell erledigt).

Der Nachteil ist natürlich, dass es nur auf der Windows Plattform
läuft. Aber who cares. Als Anfänger brauchts Erfolgserlebnisse und mit
solchen Tools wie dem Visual Studio 2005 (oder früher Delphi) kommt man
einfach schnell ans Ziel und es macht Spass.

Nach dem Einarbeiten in die ganze Materie, kann man sich dann
allenfalls immernoch nach Alternativen umsehen, wenn diese für eine
Aufgabe besser geeignet sind.

Selber begann ich mit QBasic. Später dann Delphi 5; das war schon mega
cool, sich plötzlich so einfach ein GUI machen zu können! Heute würde
ich auf Visual Studio gehen, weil die Community im Internet einfach
grösser ist und Borland Delphi keine grösseren Vorteile mehr bringt.

Mit C oder C++ und einem freien Compiler ist die Durststrecke einfach
viel länger, bis man ein lauffähiges Tool zusammengebaut hat. Und da
kann einen die Motivation schon mal verloren gehen und das ist doch
schade, wenn ein schönes Pflänzchen bereits im Keim erstickt wird.

Schönes Weekend,
Johnny

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
Noch kein Account? Hier anmelden.