Forum: PC-Programmierung Einstieg in PC-Programmierung


von André (Gast)


Lesenswert?

Hallo zusammen,

Ich erstelle bisher hobbymäßig Software für Mikrocontroller in Assembler 
und C.
Hin und wieder müsste ich ein kleines Programm auf dem PC schreiben, um 
da diverse Daten zum Mikrocontroller hin und herzuschicken (Seriell, 
TCP/IP). Umfang des Programms: ein Fenster, paar Buttons und paar Felder 
zum Eingeben/Anzeigen von Werten.

Sollte an C angelehnt sein, da ich mit C schon Erfahrungen im 
Mikrocontrollerbereich habe.
Im Bereich PC-Programmierung ist es für mich komplett Neuland.
Da ich das ganze privat nutze, sollte die Software frei erhältlich sein.

Welches Programm/Programmiersprache/Literatur würdet ihr zum  Einstieg 
empfehlen bzw. wie sollte man überhaupt anfangen? Betriebssystem wäre 
Windows.

Würde mich freuen wenn der ein oder andere da ´ne Idee hat.

von Weinga-Unity (Gast)


Lesenswert?

Hier einige Schlagwörter (einfach mit div. Suchmaschinen suchen):
FLTK (für Oberfläche)
RL-Library (TCP/IP, RS232)
DEV-C++ mit MinGW Compiler (Entwicklungsumgebung)

Mit diesen Punkten solltest du deine Aufgaben lösen können.

mfg Weichinger Klaus

von Markus (Gast)


Lesenswert?

Hi,
eine Möglichkeit wäre auch Microsoft Visual C++ 2005 Express Edition. 
Die ist speziell für Hobby-Entwickler und gratis.

http://www.microsoft.com/germany/msdn/vstudio/products/express/default.mspx

Ganz nett ist der "Dialogeditor". Man kann mit wenig Ahnung recht 
schnell zu halbwegs funktionierenden Ergebnissen kommen (Buttons, 
Eingabefelder, ...). Die Programmierdoku von Windows (MSDN) ist gelinde 
gesagt Sch****, aber im Lauf der Zeit beißt man sich da auch durch.

Gruß
Markus

von Worschsupp (Gast)


Lesenswert?

Ein Tip, wenn du möglichst kompatibel sein willst, lass die Finger von 
irgend welchen offenen Klassenbibliotheken wie wxWidgets o. ä., damit 
kommst du auf keinen grünen Zweig.

von Chris (Gast)


Lesenswert?

> DEV-C++ mit MinGW Compiler (Entwicklungsumgebung)
Dev-C++ ist nicht empfehlenswert, diese IDE wird nicht mehr 
weiterentwickelt und ist total veraltet (letzte Aktivität ist zwei Jahre 
her).
Besser ist Code::Blocks.

von Olaf S. (olaf2001)


Lesenswert?

Erwähnenswert ist vllt. auch noch Turbo-C++ von Borland, das ist auch 
für lau zu haben und eine prima IDE.

von Rahul, der Trollige (Gast)


Lesenswert?

Oder Code:Blocks (als IDE).

von Bri (Gast)


Lesenswert?

Nimm lieber C#, gibts von Microsoft als Visual C# Express kostenlos. 
Visual C++ mit MFC für die Oberfläche ist die Pest. MFC wurde 
offensichtlich von alten DOS Assembler Programmierern oder von zum 
IT-Profi umgeschulten Metzgern entwickelt.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Jaja, die üblichen Vorurteile. Sicher, MFC ist eine der verkrauteteren 
Klassenbibliotheken, und die würde ich Anfängern auch nicht nahelegen, 
bedenkt man aber, wann_ die MFC entwickelt wurden und _was damals 
C++-Compiler so konnten, und vor allem, was das dem ganzen 
zugrundeliegende Windows damals so machte, dann ist das Zeug gar nicht 
so übel. Nur leider sehr schlecht dokumentiert, da prinzipiell nie die 
Prinzipien, sondern nur die Anwendung erklärt wird.

Eine Alternative ist schon in Ordnung, aber ich würde dieses ganze 
.Net-Geraffel vermeiden wie der Teufel das Weihwasser. Damit erlernte 
Programmierfähigkeiten sind auf so gut wie kein anderes System 
übertragbar (jaja, es gibt Mono), und eine Programmiersprache, die keine 
echten Pointer kennt und einem eine GC vorschreibt, hilft einem 
überhaupt nicht, brauchbare Programme auch für Microcontroller zu 
entwickeln.

Sinnvolle Klassenbibliotheken für Windows-Oberflächenprogrammierung sind 
plattformunabhängige Klassenbibliotheken, und da stehen wxWidgets und Qt 
recht weit vorne. Beide sind auch für Linux, MacOS und auch für 
embedded-Systeme PDAs verfügbar.
Wer also dafür programmieren lernt, hat die Chance, seine Programme auch 
auf eine Waschmaschine mit graphischer Benutzeroberfläche portieren zu 
können.

Die hier von vielen Leuten als Heilsmittel vorgeschlagenen 
Borland-Produkte (BCB oder gar Delphi) sind nicht plattformunhängig, sie 
schreiben einem gewissermaßen das Verweilen bei Windows vor. In 
Anbetracht der derzeitigen Entwicklung (Vista-DRM etc.) ist das 
vielleicht nicht die klügste aller Entscheidungen; andere Töchter haben 
auch schöne Mütter.

von Olaf S. (olaf2001)


Lesenswert?

Rufus t. Firefly wrote:

> Die hier von vielen Leuten als Heilsmittel vorgeschlagenen
> Borland-Produkte (BCB oder gar Delphi) sind nicht plattformunhängig, sie
> schreiben einem gewissermaßen das Verweilen bei Windows vor.

Microsoft Visual [whatsoever] ist ebenfalls nicht plattformunabhängig 
und schreibt somit Windows vor. Stimme ansonsten aber zu.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wobei der Vollständigkeit halber "Kylix" erwähnt werden sollte, was ein 
Versuch der Firma Borland war, Delphi und auch BCB unter Linux zu 
veröffentlichen. Ist aber wohl zwischenzeitlich gestorben und von der 
Bildfläche verschwunden.

von piccie (Gast)


Lesenswert?

@ rufus,  was schlägst du denn nun als brauchbare lösung vor, die auch 
dem stand der zeit entspricht und für anfänger zu empfehlen ist um 
schnelle ergebnisse zu erzielen? Hab auch interesse kleinere anwendungen 
am pc für pic zu proggen

von Thomas (Gast)


Lesenswert?

> Sinnvolle Klassenbibliotheken für Windows-Oberflächenprogrammierung sind
> plattformunabhängige Klassenbibliotheken, und da stehen wxWidgets und Qt
> recht weit vorne. Beide sind auch für Linux, MacOS und auch für
> embedded-Systeme PDAs verfügbar.

Also ich habe mir wxWidgets mal angesehen, und ich finde, das ist nicht 
viel weiter entwickelt als das was MS mit den MFC auf die Beine gestellt 
hat.

Vor allem sind die Entwicklungstools Generationen von MS.Net oder 
Borland (BCB oder Delphi) entfernt.

Für gaanz kleine Anwendungen kann man den Aufwand auf sich nehmen, und 
sich damit herumquälen. Für Anwendungen wo die Entwlcklungszeit 
berechnet wird, halte ich wxWidgets zumindest für inakzeptabel (auch da 
jedes "Hallo Welt" Programm mit GUI gleich min. 4Mb einnimmt).

von Hubert (Gast)


Lesenswert?

wxWidgets ist halt wieder so ein (überflüssiges) Geraffel von vermutlich 
gelangweilten Informatikern, die mit ihrer Freizeit nichts anzufangen 
wissen.

> Also ich habe mir wxWidgets mal angesehen, und ich finde, das ist nicht
> viel weiter entwickelt als das was MS mit den MFC auf die Beine gestellt
> hat.

Richtig, und vor allem sieht man es den "Programmen" sofort an, dass es 
wxWidgets-Gerffel ist. Die Oberfläche entspricht nicht dem gewohnten 
Standard. wxWidgets ist definitiv nur was für Leute, die ihre 
Software/Betriebssysteme aus "Prinzipgründen" wählen, und dabei sogar 
schlechtes in Kauf nehmen.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Ich persönlich würde Ruby/TK verwenden, für deine Anforderungen denke 
ich aber dass Java/Swing am besten passt. Mit C++ handelst du dir 
deutlich mehr Ärger ein.

von VC-Profi (Gast)


Lesenswert?

Mal ehrlich,
die Hand hoch, wer von den Rat-Schläger hier  schon mal ernsthaft unter 
Windows entwickelt hat.
Ich meine so richtige Anwendungen mit kompletter Windows Oberfläche und 
allen Pipapo.

Keiner oder?

von Sven .. (kopfsalat)


Lesenswert?

Ich nutze Java/Swing und finde Javas strikte OOP wunderbar. (@VC-Profi: 
Damit habe ich auch bereits umfangreiche Software geschrieben (GUI und 
Basisfunktionalitäten >50 KLOC))

Aber Java erwartet ein nicht geringes Maß an Einarbeitung bis man damit 
richtig loslegen kann. Dafür lassen sich dann die Klassen und Packages 
nachher wunderbar in zig späteren Projekten auf allen Plattformen 
wiederverwenden und es gibt zig hochqualitative kostenlose packages für 
alle möglichen Zwecke.

Als Alternative mit der man sofort loslegen kann könnte ich auch 
PureBasic empfehlen:
http://www.purebasic.com
Da gibts auch eine kostenlose Demo-Version von, die allerdings einige 
entscheidende Einschränkungen hat (z.B. keine WinAPI-Anbindung). Du 
müsstest die Software also kaufen.

Vorteile dort:
Sehr einfache Programmierung von GUI-Anwendungen, z.B. erzeugt der 
Dreizeiler

OpenWindow(0, 0, 0, 400, 200, "TestFenster", #PB_Window_SystemMenu)
While WaitWindowEvent() <> #PB_Event_CloseWindow
Wend

ein Fenster inkl. Ereignisabfrage. Ebensoleicht lassen sich sogleich 
Buttons, Listen oder alles andere an GUI-Elementen hinzufügen und deren 
Events in der Hauptschleife verarbeiten. Das kompiliert auch unter Linux 
mit GTK und Mac.

In der Windows-Version ist die WinAPI direkt angebunden, einfach nur ein 
_ hinter den entsprechenden Befehl schreiben

Ansonsten werden dieselben Sprachkonstrukte wie in C unterstützt 
(Schleifen, Strukturen, Macros, etc.), auch Pointer-Spielereien sind 
ohne weiteres möglich und es gibt Inline-ASM (Man kann direkt ASM-Zeilen 
in den Code schreiben).

.exe-files sind klein (so ab 4kB), auch in .dll kompilierbar

Es gibt zig mitgelieferte Funktionen ohne weitere Libs (Dateizugriffe, 
Netzwerk, Kompression, 2D/3D-Grafik, usw.)

Es gibt kompetente Hilfe in den Foren (englisch/deutsch/französisch) und 
eine Menge freie Codes

Nachteile:
Wer C kann muss sich in der Syntax komplett auf einen BASIC-Dialekt 
umstellen

Die Sprache ist nicht verbreitet und daher sicherlich bei 
professioneller Software nicht 'anerkannt'

Die 64-bit-Integers sind buggy und man stößt manchmal auch woanders auf 
einen Bug in der Sprache

Trotz der nicht ganz banalen Nachteile nutze ich diese Sprache gerne für 
kleinere Windows-Tools, und mittlerweile sogar für ein größeres Projekt, 
eine Touchpanel-Mediensteuerung über TCP eines MPEG2-Players und 
zugehörigem Content-Management-System. Für größere Projekte halte ich 
aber OOP für unverzichtbar, PureBasic ist wie C nur prozedural.

Allerdings kann ich auch nicht über meinen eigenen Tellerrand sehen, da 
ich keines der weiter oben im Thread erwähnten Visual-Tools kenne und 
auch in C bisher keine GUI-Programmierung mit irgendwelchen Toolkits 
gemacht habe. Allerdings würde ich von ausschließlich auf der WinAPI 
beruhender GUI-Programmierung abraten, da man sich dort mit allerlei 
Nebensächlichkeiten rumplagen muss.

Also summa summarum meine Empfehlung:
1. Wenn du 'richtig' in die Progammierung einsteigen willst => Java
2. Zum schnell kleinere Tools schreiben => PureBasic
3. Irgendwas anderes, das ich nicht kenne

Bye,
Sven

von VC-Profi (Gast)


Lesenswert?

Aha kein Hände oben, habe ich mir es doch gedacht

@André

Unter Windows führt kein Weg an Visualstudio vorbei , die meisten 
Anwendungen werden mit VC und MFC erstellt . C# lässt man besser links 
liegen.
Alle was sonnst noch an Möglichkeiten rumkraucht und empfohlen wird, 
ist für Leute die nicht programmieren können bzw. wollen.

Visualstudio stammt vom Herausgeber von Windows und nur die wissen wie 
man eine Windows-Gui und das Messagehandling und all das ganze Zeug 
richtig programmiert (auch wenn immer einige was zu meckern haben).
Und  VC ist die nun mal der Marktführer wenn es um "Windows-Programming" 
geht. VC und MFC ist nicht das einfachste aber das Beste wenn man 
richtig programmieren will.

Gruß VC-Profi

von piccie (Gast)


Lesenswert?

naja, wenn ich mir das alles so anschaue: Ruby/TK, Java/Swing, 
Delphi,...  -  das ist alles so zurechtgebastelt, dann ist es einfacher 
und übersichtlicher, wenn ich gleich mir etwas in Visual Basic erstelle, 
da ich die Anwendung ja sowieso in Windows Umgebung einsetze. Oder sehe 
ich hier etwas falsch ??

von Sven .. (kopfsalat)


Lesenswert?

@VC
Deine Einstellung ist riguros, aber ich finde die Argumente lahm.

> Visualstudio stammt vom Herausgeber von Windows und nur die wissen wie
man eine Windows-Gui und das Messagehandling und all das ganze Zeug
richtig programmiert

Messagehandling ist umfangreich, aber nicht wirklich kompliziert. Nach 
dem Konsum einschlägiger Literatur (z.B. der Bibel von Petzold) kann man 
das auch komplett selbst über WinAPI machen. Aber sogar einer 
Randsprache wie PureBasic gelingt es ein sehr simples und intuitives 
Interface bereitzustellen, das absolut zuverlässig die GUI unter 3 
Plattformen verwaltet.

> Und  VC ist die nun mal der Marktführer wenn es um "Windows-Programming"
geht.

Marktführer zu sein heißt nicht, für jeden Anwendungszweck das richtige 
zu sein. Sich für eine Plattform auf eine Sprache festzulegen ist 
Blödsinn. Das tut man anwendungsgebunden. Java hat z.B. in einigen 
Bereichen große Vorteile gegenüber C++, und C++ in anderen gegenüber 
Java, losgelöst davon kann man dann noch seine IDE wählen. Ich habe 
jetzt keinen Bock hier anhand von Einzelheiten irgendein sinnloses 
'Welche Sprache/IDE ist die Beste'-Geplänkel anzufangen, aber für Leute, 
die mal eben ein kleines Tool schreiben möchten gibt es sogar weitere 
Alternativen zu den Riesen, die erst bei umfangreichen Projekten 
notwendig werden.

>Alle was sonnst noch an Möglichkeiten rumkraucht und empfohlen wird,
ist für Leute die nicht programmieren können bzw. wollen.

immer locker bleiben...

@piccie
Ich weiß nicht, was du mit Gebastel meinst, aber Visual Basic gehört für 
mich mit in die Bastelecke :)

Im Endeffekt sollte es eh darauf hinauslaufen, dass man sich ein paar 
mögliche Sprachen mal genauer anschaut (installieren, 
Hello-World-Progrämmchen und weitere Tests die in die Richtung gehen wo 
man hinwill) und dann feststellt, welche erstmal am Besten für den 
eigenen Zweck geeignet ist...

von VC-Profi (Gast)


Lesenswert?

Du  spielst ein bisschen mit Basic rum und meinst damit kann man 
Anwendungen für Windows schreiben? viel Spaß
Ausprobiert hast du das aber noch nie oder? sonst würdest du die Grenzen 
schnell sehen.

Die Mehrzahl der Anwendungen für Windows wurden mit Visualstudio / C++ 
und MFC entwickelt . Ich rede aber von richtigen Anwendungen nicht 
„Minit-Tools“

von Sven .. (kopfsalat)


Lesenswert?

Das ist seltsam: In egal welchem Forum, immer wenn es um 
Programmiersprachenvergleiche geht, artet es am Rande in kleine 
Flame-Wars aus. Seltsam wir Menschen...

> Du  spielst ein bisschen mit Basic rum und meinst damit kann man
Anwendungen für Windows schreiben? viel Spaß
Ausprobiert hast du das aber noch nie oder? sonst würdest du die Grenzen
schnell sehen.

Auch wenn ich es etwas albern finde mich zu rechtfertigen, mache ich das 
nun mal:
Beruflich programmiere ich am Liebsten mit Java, in einem gegenwärtigen 
Projekt besteht mein Part aus GUI und Projekt-Handling und umfasst 
bereits 50 KLOC (kilo lines of code), insgesamt sind daran 5 Leute 
beschäftigt. Das andere ist ein Forschungsprojekt eines rennomierten 
Instituts, dort programmiere ich überwiegend in Matlab (hat mittlerweile 
auch OOP), gepaart mit einigen Java-Komponenten und 
ActiveX-Erweiterungen per MSVisualC++ für die komplette Steuerung des 
Messystems. Ansonsten mache ich nebenher gerne für Multimediaprojekte 
Dinge mit Flash, z.B. Touchpanelsteuerungen für Events, Messen, Museen. 
Für Internet php, perl, oder auch JavaScript, achja und HTML/CSS :) Für 
kleinere Tools wie Terminal-progrämmchen, COM-Port-Interaktionen, 
Mini-Client/Server-Tools, etc. nutze ich gerne auch PureBasic, da man 
damit solche kleinen Dinge direkt runtercoden kann, denn sehr viel 
Funktionalität wird mit der Software mitgeliefert, da braucht man sich 
nicht um irgendwelche Drittanbieter-Lösungen zu kümmern. Z.b. schreibst 
du Sounddaten in den Speicher und nutzt einen Befehl: CatchSound() und 
danach PlaySound(). Mach das mal mit 2 Zeilen in C++ mit hauseigenen 
Funktionen. Den Grenzen aller dieser Sprachen bin ich mir bewusst - auch 
denen von C++. Das meinte ich mit anwendungsbezogener Sprachenwahl. Den 
Kram studiere ich derzeit im Hauptstudium und lebe schon lange davon, 
also bitte versuche persönliche Attacken nicht als Argumente für deine 
engstirnige Sprachenwahl heranzuziehen :P

Viele Anwendungen wurden mit Visualstudio / C++ und MFC entwickelt. Na 
und ? Viele andere mit anderen. Das hat nichts damit zu tun, welche 
Sprache für die Zwecke von Andre zu empfehlen ist. Es kann zwar gut 
sein, dass Visualstudio / C++ und MFC das richtige für ihn ist und er 
sollte es sich unbedingt mal ansehen, aber jenseits des Tellerrands gibt 
es noch mehr.

Einen guten Start in die Woche!
Sven

von Juppi (Gast)


Lesenswert?

> Anwendungen für Windows schreiben?

Eine Oberfläche hat nicht viel mit Programmieren zu tun. Wenn man weis, 
wie sie auszusehen hat, kann man die auch zurechtklicken. Das geht auf 
jeden Fall sehr viel schneller und die gewonnene Zeit kann man sinnvoll 
in die Umsetzung von Algorithmen stecken. Das ist programmieren! Naja 
und Basic bietet naturgemäß nicht die Möglichkeiten, die z. B. C/C++ 
bietet.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Handhebung:

Verdiene mir seit Anfang der 90er Jahre mein Geld mit der 
Windows-Applikationsentwicklung - und mache das überwiegend mit (o 
Schreck!) MFC.

Zu wxWidgets gibt es mit dem (allerdings nicht für lau zu bekommenden) 
GUI-Editor DialogBlocks* ein durchaus brauchbares Werkzeug.

Huberts "Kommentar" kommentiere ich nicht weiter, als daß ich darauf 
verweise, daß der Audioeditor "Audacity" eine wx-Applikation ist.

Der Kommentar würde zu Tcl/TK-Anwendungen passen, die sehen unter 
Windows tatsächlich oft nach irgendwas merkwürdigem aus ...

*) www.anthemion.co.uk - Autor ist Julian Smart, der Kopf hinter 
wxWidgets.

von König Europas (Gast)


Lesenswert?

Eine Oberfläche kann man nicht mal eben so zusammenklicken. Wer das 
meint, ist Schuld an den frustrierten Anwendern!

von Gast2 (Gast)


Lesenswert?

Für kleinere Windows-Programme, die schnell entstehen sollen, ist wohl 
C# die beste Wahl. Ist quasi ein Visual-Basic mit C-Syntax.

Etwas vergleichbares, aber bei weitem nicht so ausgereiftes bietet 
wxdsgn, das ist ein Dev-Cpp, das mit wxwidgets und einem RAD erweitert 
wurde. Der entstehende Code ist vermutlich auch plattformunabhängig. Bei 
gewünschter Plattformunabhängigkeit ist Java aber vermutlich die bessere 
Alternative.

Hier wurde doch definitiv nach etwas zum Einstieg und nach etwas 
C-ähnlichen gefragt. MFC ist doch inzwischen "veraltet", zu einem 
Neueinstieg für Windows-Programmier ist also .NET das Mittel der Wahl. 
Klar, dass einige hier noch ein paar Jahre mit MFC ihre Programme 
schreiben, aber das liegt ja dran dass da schon Programme vorhanden sind 
die sowieso gepflegt werden und zweitens halt das Know-How schon da ist. 
Deswegen muss man es aber nicht einem Neueinsteiger empfehlen. Und was 
will man bei nem kleinen Anwendungsprogramm schon mit Pointern?

Dieses Basic mag zwar toll sein, aber er hat ja nach einer kostenlosen 
Möglichkeit gefragt. Und ich konnte jetzt keinen deutlichen Vorteil aus 
deiner Argumentation raushören. Und auch wenn es generell stimmt, dass 
ein Programmierer jede Programmiersprache schnell lernen kann, finde ich 
es trotzdem vorteilhaft, bei ähnlichen Sprachen zu bleiben, auch wenn 
das natürlich auch öfters mal zu Verwirrungen führt (geht mir zumindest 
so).

Das ganze geflame ist hier doch etwas sinnlos. Anhand des verwendeten 
Tools kann man doch lang nicht entscheiden wie professionell das 
entstehende Produkt ist. Man kann mit Java genauso wie mit C# oder 
C++/MFC Schrott produzieren. Es gibt ja auch genug professionelle 
Anwendungen, die mit einem alten VisualBasic geschrieben wurden (hab ich 
hier schon gesehen und so schlecht ist das gar nicht - allerdings habe 
ich auch nicht den Code gesehen). Die sind natürlich nicht so 
umfangreich, aber für ihren Zweck völlig ausreichend, schließlich steckt 
da ja noch mehr Wissen dahinter als das reine Programmieren. Dagegen 
habe ich hier auch schon C#/C++-Anwendungen, die grottig lahm sind und 
sogar Speicherlecks aufweisen (ok, war nur ne Beta), gesehen.

Ihr habt ja jetzt ein paar Alternativen geliefert, der Threadersteller 
muss am Ende selbst entscheiden was er nutzen möchte - ich gehe aber 
fast davon aus, dass er (evtl. auch wegen eurem geflame) das Interesse 
verloren hat.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> MFC ist doch inzwischen "veraltet", zu einem Neueinstieg für
> Windows-Programmier ist also .NET das Mittel der Wahl.

Dem zweiten Teil der Aussage widerspreche ich. Das .Net-Geraffel ist nur 
dann Mittel der Wahl, wenn man niemals irgendwas anderes als 
Windows-Systeme programmieren will (nein, komm mir jetzt nicht mit Mono) 
und auch, wenn man niemals vernünftig C bzw. C++ programmieren lernen 
möchte. Genauso wie Java nimmt einem "managed C++" oder "C#" nämlich das 
Denken ab ... und Leute, die mit sowas gearbeitet haben, habens ganz 
besonders schwer, das Konzept eines Pointers zu verstehen.

von Gast2 (Gast)


Lesenswert?

Wie hier schon erwähnt wurde, anwendungsbezogen entscheiden. Hier ging 
es um Einstieg in die Windows-Programmierung. Von Pointern usw. wird er 
ja wohl Ahnung haben, wenn er Assembler und C auf uC's verwendet.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Rufus t. Firefly wrote:
> Genauso wie Java nimmt einem "managed C++" oder "C#" nämlich das
> Denken ab ...

Offensichtlich ist das auch dringend notwendig. Der Großteil aller 
Sichsheitslücken entsteht dadurch, dass Fehler mit Pointern, 
Formatstrings usw. gemacht werden. Und zwar nicht nur von Anfängern.

von Schoaschi (Gast)


Lesenswert?

Hi

Ich rate dir von Microsoft Visual Studio ab. Es mag vl eine brauchbare 
Programmierumgeben zu sein. Nur durch die tatsache, dass dein Computer 
danach nicht mehr brauchbar ist, wenn du dieses Programm installiert 
hast, ist das, meiner Meinung nach, ein grund wieso man es nicht 
verwendet.

Also bevor ich das installiert habe, ging auf meinem PC so ziemlich 
alles. Nachdem ich es installiert habe. Gingen meine anderen Compiler, 
meine CAD-Programme und Spiele usw. nicht mehr.
Daraufhin bin ich bzw sind wir(das hat mehrere Betroffen) zum Professor 
hin und haben in auf dieses PRoblem angesprochen. Er hat dann nur mehr 
gemeint: Es tut im leid, er hat vergessen zu erwähnen, dass man dafür am 
besten ein eigenes System aufsetzten soll, denn nach der installation 
geht gar nichts mehr ;-)

Nunja... ich verwende jetzt den DEV-C++ compiler und bin recht zufrieden 
damit.
Da ich aber lieber C Programmiere als C++, verwenden ich, wenn möglich, 
den CVI von NI.Dieser ist leider nicht kostenlos.. aber ansonst sehr 
empfehlenswert.

mfg SChoasch

von Gast (Gast)


Lesenswert?

Hi,
schau Dir doch mal den LCC-Compiler ist ist für die private Nutzung 
kostenlos, es gibt auch ausreichend Doku dazu und er besitzt ähnlich wie 
der DevC++ eine einfache Oberfläche inkl. eines Projekt-Wizards. 
Herstelle QSoftware Solutions GmbH oder google nach lccwin32.exe

von Dirk (Gast)


Lesenswert?

Hallo, in der Firma gab es damals oefter die gleichen Aufgabenstellungen 
z.B. Spannungsanzeige, paar Button und die Kommunikation zum AVR sollte 
per USB / RS232 auf einem Windows PC laufen.

Leider war für die Windows Anwendung keine Zeit eingeplant, sondern nur 
die AVR Programmierung. Aus diesen Grund habe ich mich für Visual Basic 
(2005) entschieden und bin soweit zufrieden. Ich wollte auch nicht meine 
ganze Zeit damit verbringen auch noch Visual C++ / MFC zulernen, obwohl 
es sich um simple Frontend Software handelt.

von Jupp (Gast)


Lesenswert?

"Nur durch die tatsache, dass dein Computer danach nicht mehr brauchbar 
ist, wenn du dieses Programm installiert hast, ist das, meiner Meinung 
nach, ein grund wieso man es nicht verwendet."

Kann ich nicht bestätigen. Ich habe Visual Studio 6 sowie Visual Studio 
.NET parallel installiert, und beide Umgebungen sowie das OS und alle 
anderen Programme funktionen einwandfrei.

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Andreas Schwarz wrote:
> Rufus t. Firefly wrote:
>> Genauso wie Java nimmt einem "managed C++" oder "C#" nämlich das
>> Denken ab ...
>
> Offensichtlich ist das auch dringend notwendig. Der Großteil aller
> Sichsheitslücken entsteht dadurch, dass Fehler mit Pointern,
> Formatstrings usw. gemacht werden. Und zwar nicht nur von Anfängern.

Exakt. Formatstrings und manuelle Speicherverwaltung sind in üblicher PC 
Umgebung (also Rechenleistung und Speicher satt) eine stupide 
Fleisarbeit für den Programmierer und genau dort passieren dann Fehler. 
Warum soll einem das nicht eine Laufzeitumgebung abnehmen?

Über "managed C++" brauchen wir nicht diskutieren. Das ist eine Krücke. 
Aber C# (besser .NET) ist nunmal für Windows-Only Anwendungen (ja, die 
gibt es) die Zukunft. So hat M$ beschlossen und so wird es kommen. Und 
wer sich mal mit der Sprache, der Laufzeitumgebung und der Bibliothek 
(unvoreingenommen!) beschäftigt hat wird feststellen dass das Zeug 
eigentlich garnicht schlecht ist. Schade nur das M$ auf einigen Teilen 
der Bibliothek "den Finger drauf hat". So ist die rechtliche Situation 
der mono Windows.Forms Implementierung noch offen.

Matthias

von Olaf S. (olaf2001)


Lesenswert?

Habe erst jetzt Zeit dazu handheb

Coden beherrsche ich seit 1986, seit Delphi 1 bin ich Entwickler unter 
Windows und hab mehrere Großprojekte allein damit abgewickelt. Dabei 
reicht der Bogen von Medienneutralen Datenbanken über GPS-gestützte 
Ortungssysteme bis hin zu Dispatcher-Anwendungen im 
TETRA-Bündelfunknetz, wo manche Aufgabe den Einsatz von Assembler 
erfordert... Alles in Delphi, mit GUI, Soundausgabe und allem PiPaPo.

IMHO sind Delphi, C++ Builder und VC++ zur Zeit die einzig 
ernstzunehmenden IDE's unter Windows. Aus C# könnte vielleicht was 
werden, wenn sich das auf andere Plattformen ausbreiten würde - sieht 
eigentlich nicht so schlecht aus, die Sprache, stimme Matthias da zu.

Übrigens - die .NET-Geschichte dient IMHO eher dazu, Windows sicherer zu 
machen. Wer keinen Schimmer von Pointern hat, spielt damit auch nicht 
herum (schnell mal n Meg Speicher abholen etcpp). Das vermeidet dann 
Buffer underruns, Overflows und all die anderen bösen Dinge, die Hacker 
so sehr mögen.

Olaf

von VC-Profi (Gast)


Lesenswert?

Nach Aussage eines Microsoftlers wird VC++ aber weiter entwickelt.
Ich kenne vielen Entwickler  die nicht auf C#  umsteigen. Und das ist 
das Problem für Microsoft. C# findet nicht die gewünschte Resonanz. Am 
Markt vorbei zuentwickeln, können die sich auch nicht leisten.
Meisten sind es nur die Neueinsteiger die C# nutzen .Weil es Dummi und 
Idioten-Gerecht ist.
Aber für komplexe Anwedungen muss man das Speichermanagement selber 
machen ,(wer richtig programmiert, kann das bestätigen). Auch die 
fehlenden Pointer sind fatal für richtiges arbeiten.

von Philipp B. (philipp_burch)


Lesenswert?

@VC-Profi:

Darf ich fragen wie alt du bist und wie lange du schon programmierst?
Ich will dich nicht angreifen, ist nur aus Interesse. Und um Fragen 
vorzubeugen: Ich bin 18, programmiere seit etwa fünf Jahren vorwiegend 
VB6 und VB2005, sowie ASM und C für Microcontroller. Seit Kurzem auch 
Assembler und C++ für Windows.

Dann hätte ich da noch eine Aussage bzw. Bezeichnung die ich gerne 
erklärt hätte: "richtig programmieren"
Kannst du mir sagen, was ich unter "richtigem Programmieren" verstehen 
soll? Anwendungen ab 10kLoC?

@André:

Also ich programmiere meine Proggies zur Kommunikation mit den 
Controllern in VB6 bzw. VB2005. Damit lassen sich serielle und parallele 
Schnittstelle recht gut ansprechen und die GUI kann man sich sehr 
schnell und einfach zusammenklicken. Für solche Tools (Und meiner 
Meinung nach auch grössere Anwendungen) völlig ausreichend. Allerdings 
halt nicht plattformunabhängig und auch nicht an C angelehnt. Aber die 
Syntax lernt sich recht schnell.
Wenn man programmieren kann ist es ohnehin nicht übermässig schwer und 
zeitaufwändig, sich in eine andere Sprache einzuarbeiten solange dort 
nicht ein vollkommen anderes Konzept der Programmierung verfolgt wird.

Gruss
Philipp

von VC-Profi (Gast)


Lesenswert?

Ich bin 33 und anscheinend zu alt für solche Fragen.

von Philipp B. (philipp_burch)


Lesenswert?

Und schon so verklemmt? Schade...

von Frank Se. (Gast)


Lesenswert?

Hallo Phillipp Burch,

wie machst du unter Visual C++ die grafische Auswertung?
Gibt es im Netz irgendwo ein Beispiel dazu?
ich möchte die Daten von einem Controller via RS232 in Visual C++ 
grafisch darstellen.

von Klospülung (Gast)


Lesenswert?

> Kannst du mir sagen, was ich unter "richtigem Programmieren" verstehen
> soll? Anwendungen ab 10kLoC?

Unter richtiger Programmierung versteht er sicher, wenn er sich für 
bestimmte Funktionen tagelang den Kopf zerbrechen muß, obwohl dies in 
einer "hohen" Programmiersprache wie C# vielleicht ein Einzeiler 
darstellt.

von VC-Profi (Gast)


Lesenswert?

"wie machst du unter Visual C++ die grafische Auswertung?
Gibt es im Netz irgendwo ein Beispiel dazu?
ich möchte die Daten von einem Controller via RS232 in Visual C++
grafisch darstellen."

Im wesentlichen mit du das wohl mit einem "Pen" selber zeichnen usw.
Schau mal unter www.codeproject.com  Da habe ich mal ein Beispiel für so 
etwas gesehen (ich glaube unter MFC-Controls).



von Philipp B. (philipp_burch)


Lesenswert?

@Frank:

Hallo? VC++? Ich sprach oben doch von Visual BASIC 2005 und da ist sowas 
mit wenigen Mausklicks erledigt. Ausserdem läuft im .net Framework auch 
alles über GDI+, da hast du dann auch gleich solche Sachen wie 
Anti-Aliasing und solches Zeugs standardmässig drin (Lässt sich 
natürlich auch abschalten), das vereinfacht die Grafikausgabe :)

Aber wie du das realisierst hängt natürlich im Wesentlichen davon ab, 
wie es denn aussehen soll. Willst du ein komplettes Diagramm erstellen 
oder sowas, dann wirst du auch da entweder alles selbst zeichnen müssen 
oder aber ein fertiges Control verwenden. Ich empfehle allerdings selber 
zeichnen, ist viel flexibler. Willst du allerdings einfach nur Daten 
auflisten, beispielsweise in einer ListBox oder so, dann ist das 
wirklich sehr einfach zu lösen. Auch ohne Pointer.

von König Europas (Gast)


Lesenswert?

Richtig programmieren ist, wenn man einem anderen seinen Quelltext gibt, 
und der dann damit weiterarbeiten kann.

von Philipp B. (philipp_burch)


Lesenswert?

Na wenn du meinst... Was das dann allerdings mit der gewählten 
Programmiersprache zu tun hat ist mir schleierhaft.

von Gast2 (Gast)


Lesenswert?

@phillip: hast du dir schonmal C# angeschaut? Ist quasi VB mit 
C-ähnlicher Syntax. Für kleine Tools finde ich es echt nett.

von Weinga-Unity (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Obwohl ich schon anfangs mal einen ähnliches Kommentar gegeben haben, 
möchte ich mich hier nochmal melden.

Ich programmieren auch viel Delphi (finde es sehr nett, kann schön 
objektorientiert arbeiten, große Community).

In der letzten Zeit versuche ich auch mit C++ und FLTK (für GUI) 
Anwendungen zu schreiben (Screen-Shot von UNI-Projekt siehe Anhang). Als 
IDE verwendet ich DevC++, da dort ein nettes Package-Management dabei 
ist (direktes Downloaden und Installieren aus dem Internet). Außerdem 
kann mans auch für die Mikrocontroller verwenden (derzeit für AVR und 
MSP430).

Ich finde FLTK gut und auch als Anfänger in C++ sollte man mit den 
Hello-World Beispielen anfangen können und selber seine kleinen Toolz 
entwickeln können. Sehr schön finde ich auch die Entwicklung eigener 
Widgets (z.B. das Scope im Screenshot). Einziger Schönheitsfehler ist 
das Callback-System.

Plattformunabhängigkeit ist auch gegeben (obiges Programm läuft auch auf 
Linux und die RS232 läuft auch).


Weitere Libs für die Hobby-Entwickler:
RS232: rlserial
TCP usw.:  rllibrary
USB: libusb

mfg Weichinger Klaus

von Chris (Gast)


Lesenswert?

@Weinga-Unity: btw, JPEG ist für Screenshots ein ziemlich ungeeignetes 
Format, weil es Kanten verschwimmen lässt und daher "unsauber" aussieht. 
PNG oder GIF führen bei Screenshots oft zu kleineren Dateien bei 
besserer Qualität.

von Philipp B. (philipp_burch)


Lesenswert?

@Gast2:

Jop, C# kenne ich, ich programmiere auch viel mit VB 2005, das ist ja 
ungefähr das Gleiche (.NET-Framework 2.0), nur die Syntax ist eben etwas 
anders. Cool ist daran vor Allem die kostenlose IDE (Express Edition), 
aber auch die Sprache ist recht gut. Allerdings ist die Darstellung von 
Controls schnarchlahm.

@Weinga-Unity:

Also für ganze Anwendungen mit guter GUI usw. bevorzuge ich dann doch 
eher etwas wie VB 2005 oder VB6. Falls mal wirklich was zeitkritisches 
drin sein sollte, kann man das ja immer noch in C, C++ oder Assembler 
proggen (ASM ist echt cool, kann ich auch empfehlen :) ).

von Obelix (Gast)


Lesenswert?

Gibt es im Netzt irgendwo eine Vergleichstabelle von C / C++ Tools?

Ich suche nähmlich auch noch eine Windows Entwicklungsumgebung mit 
Debugger für C/C++. Ich habe schon Erfahrungen mit Delphi, C++ für DOS, 
C für µC.

von arc (Gast)


Lesenswert?

Wenn Delphi-Erfahrung da ist, liegt doch der Turbo-Explorer C++ bzw. 
Turbo C++/C++Builder von Borland/Inprise/Codegear nahe (wenn nicht schon 
wieder was geändert wurde).
Ansonsten: Visual Studio, Code::Blocks oder Eclipse ansehen

von Stock H. (winkelmesser)


Lesenswert?

Wie wäre es denn mal mit einer modernen Sprache: Groovy

Vorteile:
- Eine dynamische Sprache (geht in Richtung scriptsprache)
- untypisiert (wer basic-Vorkenntnisse hat) oder auch typisiert
- Riesen API
- Java kann verwendet werden
- Komfortable Entwicklung mit Eclipse
- plattformunabhängig

Nachteile:
- Kommt darauf an

von Obelix (Gast)


Lesenswert?

Nochmal eine dumme Frage von mir ... Wie sieht es z.B. bei Code::Blocks 
oder Eclipse mit einem Debugger aus? Ist immer schön, wenn man so Zeile 
für Zeile sein Programm ausführen kann.

von *.* (Gast)


Lesenswert?

In Eclipse kann man zumindest Java Zeile für Zeile debuggen.

von Karl H. (kbuchegg)


Lesenswert?

Klospülung wrote:
>> Kannst du mir sagen, was ich unter "richtigem Programmieren" verstehen
>> soll? Anwendungen ab 10kLoC?
>
> Unter richtiger Programmierung versteht er sicher, wenn er sich für
> bestimmte Funktionen tagelang den Kopf zerbrechen muß, obwohl dies in
> einer "hohen" Programmiersprache wie C# vielleicht ein Einzeiler
> darstellt.

Nein.
Unter richtiger Programmierung versteht man, wenn man nicht
stundenlang nach einem fehlendem Dispose suchen muss um
dem GC unter die Arme zu greifen. Statt dessen benutzt
man das RAII-Idiom um mit dem üblichen Konstruktor/Destruktor
Aufbau das Resource Management schon fast nebenher zu machen
(das dann auch funktioniert. Ooops, Destruktoren sind unter
C# unbrauchbar; in C++ sind sie es nicht. Statt dessen muss
in C# der Verwender(!) eines Objekts darauf aufpassen, dass er
einem Objekt beim Freigeben mit einem Aufruf von dispose
die Möglichkeit gibt, Resourcenmanagement zu betreiben.
Tschuldigung: aber das ist doch Steinzeit. Das unterscheidet
sich in nichts von den init() und cleanup() calls, die man
vor 30 Jahren in Fortran schon nicht vergessen durfte. Und
wehe man vergass einen. Ist heute nicht anders: Vergiss einen
dispose auf einer wichtigen, grossen Struktur und schau im
Taskmanager zu, wie dein Programm den 2GByte Speicher zumüllt.
Irgendwann fängt dann Windows zu pagen an, die Gesamtperformance
geht in die Knie, bis sich irgendwann dann die .NET Runtime meldet:
'Out of Memory'. Hab ich bereits mehr als einmal beobachtet.
Soviel zum Thema: Speichermanagementprobleme gehören der
Vergangenheit an.
Das funktionsgleiche C++ Programm, mittels Konstruktor,
Destruktor und RAII sauber aufgebaut, werkelt dagegen
wochenlang mit seinen 100kB Working Set, zu aller
Zufriedenheit vor sich hin.



von Johnny (Gast)


Lesenswert?

Um schnell mal Tools oder auch grössere Projekte zu programmieren, 
empfehle ich das Visual Studio .NET mit der Programmiersprache C#. In 
der Express Version ist das ganze kostenlos und man kann alles damit 
machen was man so braucht (GUI Anwendungen, Konsolenanwendungen, 
Datenbankanbindung, Netzwerkanbindung, Filehandling, RS232 Anbindung 
etc. etc.).
Vieles lässt sich mit wenigen Zeilen Code realisieren, da das Rad für 
häufige Aufgaben nicht nochmals erfunden werden muss, sprich vieles 
gibts schon fix fertig im .NET Framework.
Man kann somit sehr schnell entwickeln und sich auf die realisierung des 
eigenen Tools konzentrieren, statt auf die Programmiersprache und dessen 
Entwicklungsumgebung.
Der Debugger im Visual Studio .NET ist super und auch die Doku/Hilfe ist 
mittlerweile sehr ausgereift und sogar in Deutsch vorhanden.

Zum Einsteigen würde ich aber doch einen kleinen Kurs empfehlen, da man 
sonst schnell von der Gewaltigkeit des .NET Frameworks erschlagen wird. 
Auch ist es von Vorteil, neue Projekte gleich Objektorientiert zu 
programmieren und da ist es hart, sich das alles im Selbststudium 
beizubringen. Das objektorientierte Programmieren empfiehlt sich aber 
auch für andere Programmiersprachen.

von arc (Gast)


Lesenswert?

> Unter richtiger Programmierung versteht man, wenn man nicht
> stundenlang nach einem fehlendem Dispose suchen muss um
> dem GC unter die Arme zu greifen.
oder einem fehlenden delete, free, nicht virtuellen Desktrutoren, 
falscher Destruktor-Reihenfolge beim Verlassen einer Methode, da 
abhängig von der Reihenfolge der Deklaration und/oder der Blöcke in 
denen die Variablen deklariert wurden, schön wird's auch wenn a = 
new(ptr) AClass verwendet wird oder Exceptions die in Desktruktoren 
auftauchen

> Statt dessen benutzt man das RAII-Idiom um mit dem üblichen
> Konstruktor/Destruktor Aufbau das Resource Management schon fast
> nebenher zu machen (das dann auch funktioniert. Ooops, Destruktoren sind
> unter C# unbrauchbar; in C++ sind sie es nicht.

Unbrauchbar nicht, man braucht sie nur so gut wie nie.

> Statt dessen muss in C# der Verwender(!) eines Objekts darauf aufpassen,
> dass er einem Objekt beim Freigeben mit einem Aufruf von dispose
> die Möglichkeit gibt, Resourcenmanagement zu betreiben.
> Tschuldigung: aber das ist doch Steinzeit.

Nur bei nicht-verwalteten Resourcen (File-Handling zum Beispiel, nur 
nennt man es da, wie in anderen Sprachen auch, nicht Dispose sondern 
Close.
Will man deterministisches Verhalten benutzt man using.

> Das unterscheidet sich in nichts von den init() und cleanup() calls, die
> man vor 30 Jahren in Fortran schon nicht vergessen durfte. Und
> wehe man vergass einen. Ist heute nicht anders: Vergiss einen
> dispose auf einer wichtigen, grossen Struktur und schau im
> Taskmanager zu, wie dein Programm den 2GByte Speicher zumüllt.

Wie oben schon gesagt, gilt das nur bei nicht-verwalteten Resourcen.
Dispose ist in C# eine ganz normale Methode die explizit (Ausnahme: 
using oder foreach) aufgerufen werden muss, wenn man Resourcen freigeben 
will.
Das eigentliche Objekt, das die Resource verwendet, und der dazugehörige 
(verwaltete) Speicher werden auch dann nicht freigegeben (wie z.B. auch 
bei Eiffel, Java oder Smalltalk üblich)

von peter (Gast)


Lesenswert?

> Um schnell mal Tools oder auch grössere Projekte zu programmieren,
> empfehle ich das Visual Studio .NET mit der Programmiersprache C#.

nee, das ist doof. da muss man sich die magafette .NET runtime 
installieren etc. sowas nervt nur, erst recht wenn man's weitergeben 
will und der andere hat kein .NET drauf (ist mit Java übrigens das 
gleiche Problem, nur dass Java als sprache nicht ganz so grottig ist wie 
C# oder C++/CLI).

am besten man nimmt ein gui-toolkit: 
http://www.geocities.com/SiliconValley/Vista/7184/guitool.html
(egal ob C oder C++) und dann geht das schon ;)

von Christian (Guest) (Gast)


Lesenswert?

Graphik-Frontend bauen:

http://www.wxwidgets.org/

nur so ein Tipp.

Kann von mehreren Sprachen verwendet werden.
Gruss,c.

von Johnny (Gast)


Lesenswert?

>nee, das ist doof. da muss man sich die magafette .NET runtime
>installieren etc. sowas nervt nur, erst recht wenn man's weitergeben
>will und der andere hat kein .NET drauf (ist mit Java übrigens das
>gleiche Problem, nur dass Java als sprache nicht ganz so grottig ist wie
>C# oder C++/CLI).

Gewisse Grundvoraussetzungen müssen halt erfüllt sein.
So wird Dein C++ Programm auch nicht ohne Betriebssystem laufen.
Zudem kann das .NET Framework ganz bequem per Windows Update installiert 
werden.
Aber ich zwinge natürlich keinem C# und .NET auf. Wenn jemand genügend 
Freizeit/Arbeitszeit hat um sich mit C++/MFC herumzuschlagen, dann soll 
er das tun.

von weakbit (Gast)


Lesenswert?

Aha, Jetzt kenne ich mich voll aus.(Ums Ehrlich zu sagen gar nicht)
Also man soll gar nichts verwenden denn sonst wäre es ja arbeit - das 
leuchtet ein. Aber was verwende ich jetzt ich kann nur ASM und kein 
C,C++,C Kanalgitter,Delfi,Java gar nichts von dem.
Ich will aber ein Windows Programm schreiben das lediglich 7 Buchstaben 
+ Steuereungscode an einen selbstgebauten Locher schickt das wäre es.
Also Programm Tasterturabfrage mit Anzeige am Bildschirm und ein Print 
Taster (Icon) das man mit Enter oder per Maus anklicken kann.
Das Ding soll dann die Daten + Steuerungsdaten an den Locher per USB Bus 
schicken. Wenn der nicht Reagiert ein Rotes ICO aufleuchten.

Mein Vorgesetzter hat mir gesagt das ich nicht so lange mit USB herumtun 
soll und ich mich mit PC Programmierung ja sowieso nicht auskenne.
Ich habe Ihm gesagt das jeder Mensch verschiedene Fähigkeiten hat und 
Ich bei diesem Projekt ja sowieso wieder alles alleine Entwickeln darf - 
da sich bei uns in der Firma ja nimmand auskennt. (Auch er nicht)

Für die USB wird es wohl einen Standart Treiber geben oder so eine 
Libery wie man das von C kennt naja ich hab noch nie was damit gemacht.
Soll ich MFC nehmen? VB6 hab ich mal ein Buch gekauft aber läuft das auf 
Win7? C wäre glaube ich das einfachste. Ich versuche mal das MFC und 
werde euch berichten.

MfG weakbit

von Berti (Gast)


Lesenswert?

Ich empfehle dir etwas Zeit in Qt zu stecken. Alles open source 
verfügbar und in kurzer Zeit lässt sich mit wenig Aufwand viel 
erreichen!
zum USB: Wenn du z.B. einen FTDI baustein als Interface verwendest ist 
es recht einfach Daten hin und her zu schicken...
Ich hab das auch mit Qt gemacht...

http://qt.nokia.com/products/

Open source Compiler: MinGw

von Ingo (Gast)


Lesenswert?

Ich glaube auch, das MinGW eine gute Ausgangsbasis ist, es basiert auf 
dem GCC, es sind ne Menge nützliche Tools zum Umgang mit Resourcen mit 
bei, die man ja braucht, um unter Windows ne vernünftige 
Benutzeroberfläche zu bauen. Von Frameworks halte ich weniger. Ich hatte 
früher meine ersten Windowsprogramme mit dem Borland BCPPB 
"zusammengeklickt", wie es hier auch schon geschrieben wurde, war damit 
aber nie so richtig zufrieden. Vor Allem, das man für ein 50 bis 100k 
großes Programm 3 MB an Libs mitgeben muss, von denen man nur Bruchteile 
an Funktionen benutzt. Das Programmieren nach dem SDK (das ist die 
Beschreibung der API's von Microsoft) mag zwar am Anfang etwas 
mühselig sein, wenn man das Prinzip aber einmal verstanden hat, geht es 
auch sehr effektiv. Dazu gibt es auch ne Menge Nützliche Tutorials im 
Netz viele auch in deutsch.
mfG Ingo

von Benni L. (sutter_cain)


Lesenswert?

Hallo,
ich selbst benutze Eclipse als Entwicklungsumgebung. Zu dieser gibt es 
das CDT Plugin für C/C++. Von QT gibt es ein Eclipse Plugin, so dass es 
einfach möglich ist GUI's zu erstellen.

Wie bereits geschrieben verwende ich QT als Klassenbilbiothek. Diese hat 
auch noch den Vorteil der Portierbarkeit auf andere Betriebssysteme. 
Desweiteren finden sich sehr viele Beispiele und erweiterungen zur 
Bibliothek im Internet.

Als Compiler verwende ich MinGW.

Und das ganze gibt es zum OpenSource Tarif.

Als negativ habe ich die ganze Installation empfunden. Es kann ein wenig 
dauern bis alle Tools nahtlos ineinander greifen und ohne Fehlermeldung 
ihren Dienst verrichten.


Für USB ist wohl am einfachsten erstmal einen virtuellen COM Port mit 
einem FTDI Chip zu verwenden. Es gibt auch fertige Library's, hier wäre 
Libusb zu nennen. Oder du schreibst dir deinen eigenen Treiber mit dem 
Windows DDK.

PS: Wäre es nicht besser einen neuen Thread für Entwicklungsumgebung und 
USB zu eröffnen??

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.