mikrocontroller.net

Forum: PC-Programmierung Einfache windows programme schreiben


Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: compileritis (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
bloodshed.net

Autor: Andreas W. (Gast)
Datum:

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

Autor: Jens P. (jmoney)
Datum:

Bewertung
0 lesenswert
nicht 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..

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Blackbird (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Nobody (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Blackbird (Gast)
Datum:

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

Ist diese Aussage nicht etwas subjektiv?

Blackbird

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Kola (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: arc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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();

Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Weinga-Unity (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Blackbird (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Christoph Baer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johnny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.