• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Windows "GUI" Programme unter linux programmieren

moin!

ja.. ich denke die Überschrift sagt bereits fast alles aus ^^ wir werden in der schule windows programmierung lernen.. also progs mit ner gui (ned nur konsole)... tja... und da meine freunde und ich nicht auf windows angewiesen sein wollen, haben wir uns gefragt, ob es nciht ne möglichkeit gibt, unter linux windows programme zu schreiben... wenn ich mich richtig erinnere, dann hab ich im kdevelope sogar einen menüpunkt bei der projekterstellung dafür gefunden.. hat schon jemand erfahrungen damit?
geht das gut, oder ist das eher "unbrauchbar", oder kennt jemand ne alternative?
geht das überhaupt? ^^

naja.. in der hoffnung auf eine antwort

bernhard
 
Vielleicht könntest Du Windows-Programme unter Linux schreiben und dann mit wine laufen lassen.

Doch warum sollte man so etwas tun :? ?

Gruß
 
abgdf schrieb:
Vielleicht könntest Du Windows-Programme unter Linux schreiben und dann mit wine laufen lassen.

Doch warum sollte man so etwas tun :? ?

Gruß

weil ich einfach nicht auf windose angewiesen sein will ^^ ich überleg derzeit, ob ich nicht mein windoof kübel, und nur mehr unter linux arbeite.. dazu müsste ich aber auch windows programme unter linux schreiben können.
 
Schreibe lieber Cross-Platform-Programme, z.B. gäbe es da http://wxwidgets.org/ für Grafisches. Im Bereich textbasiert gibt es ja schon die stdio-Norm (das war's dann aber auch :-D ).
 
Ich denke das hängt ganz davon ab was genau unter Windows-Programmierung zu verstehen ist. Geht es um einen Grundkurs in Progammieren (scheint mir für einen Kurs in der Schule das Wahrscheinlichste zu sein)? Welche Programmiersprache soll verwendet werden? Soll eine bestimmte Programmierumgebung verwendet werden? Angesichts des Themas "Windoof"-Programmierung vermute ich mal das eurem Lehrer sowas wie "Visual-Basic" vorschwebt. Das wäre für einen Linux-Fan dann eher ungünstig (obwohl es glaub ich irgendein Projekt gibt welches eine Art Open-Source Äquivalent zu Visual-Basic produziert. Leider erinnere ich mich nicht an den Namen. Basic ist eh eine Sch*** Programmiersprache und jeder der sie für Lernzwecke benutzt gehört erschlagen). Mein Vorschlag wäre euch bei eurem Lehrer zu erkundigen, was genau euch bevorsteht und falls möglich auf platformunabhängige Tools zu bestehen, z.B. Java und Netbeans als IDE http://www.netbeans.org/downloads/ (ich weiß aber nicht wie stabil letzteres zur Zeit ist. War früher nicht so dolle. Ich benutze lieber eclipse http://www.eclipse.org/, dürfte aber für Schulzwecke zu komplex sein). Wenn du näheres über die Intentionen eures Lehres weist solltest du nochmal hier im Forum nachfragen.
 
Windows-Programmierung, d.h. diese komischen CamelCase-Funktionen wie FlushFileBuffers() mit den komischen Typedefs wie DWORD. Und WinMain(), MFC, ATL, COM und wie der ganze Schrott heißt.
Standard-Programmierung, das wäre dagegen fflush, normale Typen, main().
 
ok... erstmals danke für eure zahlreichen antworten.... unter Windows Programmierung verstehe ich C++ Programme mit einer GUI.... und ja.. es muss C++ sein, da es ja darum geht, dass wir C++ Programmierung lernen... an sich wäre Eclipse kein prob von der bedienung her... hab es schon für normales "standard" c verwendet, und ist eigentlich ned so schwer zu bedienen.. gibt es da ein plugin, so wie für C? weis das jemand?
 
unter Windows Programmierung verstehe ich C++ Programme mit einer GUI....

Aha, das verstehe ich dann also so, daß es nur um die GUI geht.

Das ist so: Um eine GUI zu programmieren, mußt Du mit dem OS zusammenarbeiten.

Unter MS Windows mußt Du etwas über die Windows API (in C) oder die Microsoft Foundation Classes (MFC) lernen.

Unter Linux gibt es mehrere Möglichkeiten. Für ein Programm, das wie KDE aussieht, mußt Du etwas über Qt lernen, z.B.:

http://doc.trolltech.com/3.3/designer-manual-2.html

Ein MS Windows-Programm mit GUI in C++ ist also völlig anders aufgebaut als ein Linux-Programm mit GUI in C++ :wink: .

Viele Grüße

P.S.: Zu meiner Schulzeit gab's ja noch keinen Informatikunterricht. Mir scheint C++ irgendwie zu schwer zu sein, um den Schülern damit Erfolgserlebnisse zu bereiten. Diese Zeiger, Speicherverwaltungsfunktionen und ständigen Variablendeklarationen sind doch echt Quälerei.
Bitte sag mal bescheid, wenn Du meinst, daß Du C++ an Deiner Schule gelernt hast.
Würde mich mal interessieren, was bei so einem Schulunterricht letztlich rauskommt.

P.P.S.: Wenn euer Lehrer sich schon an Microsoft ranwirft, indem er euch C++-Windows-Programmierung beibringt, dann sollte er euch doch wenigstens bis zum MCAD

http://www.microsoft.com/germany/learning/mcad/default.mspx

bringen :mrgreen: .
 
abgdf schrieb:
Unter MS Windows mußt Du etwas über die Windows API (in C) oder die Microsoft Foundation Classes (MFC) lernen.

Das ist so nicht ganz richtig. Das Qt-Toolkit gibt es in einer Linux- und in einer Windowsversion. Letztere wird inzwischen (wie die Linuxversion schon lange) auch in einer "Open Source Edition" (GPL) vertrieben http://www.trolltech.com/developer/downloads/qt/windows (und Mac gibts auch). Es ist mit Qt daher im Prinzip möglich unter Linux Anwendungen zu entwickeln, die durch einfaches Recompilieren nach Windows portiert werden können. Ähnlich verhält es sich mit wxWindows http://www.wxwidgets.org/. Bei Funktionen die nicht von diesen Bibliotheken abgedeckt werden (z.B. Filezugriffe, ioctl oder Prozesskontrolle) wird man in der Regel allerdings nicht um Betriebssytem-spezifischen Code herumkommen (und die üblichen ifdefs). Ich muß allerdings hinzufügen, dass ich mich nur auf der Linux/Unix-Seite gut auskenne - Windows Programmierung konnte ich bisher immer vermeiden :D



Zu meiner Schulzeit gab's ja noch keinen Informatikunterricht. Mir scheint C++ irgendwie zu schwer zu sein, um den Schülern damit Erfolgserlebnisse zu bereiten. Diese Zeiger, Speicherverwaltungsfunktionen und ständigen Variablendeklarationen sind doch echt Quälerei.

FULL ACK. Zum Lernen ist C++ IMHO völlig ungeeignet.
 
Aber zum Böse-Sachen-Machen perfekt:
Code:
(*x)->y((z, 1));
Operator-Overloading von * -> () und , ist schön fies :twisted:
 
abgdf schrieb:
unter Windows Programmierung verstehe ich C++ Programme mit einer GUI....

Aha, das verstehe ich dann also so, daß es nur um die GUI geht.

Das ist so: Um eine GUI zu programmieren, mußt Du mit dem OS zusammenarbeiten.

Unter MS Windows mußt Du etwas über die Windows API (in C) oder die Microsoft Foundation Classes (MFC) lernen.

Unter Linux gibt es mehrere Möglichkeiten. Für ein Programm, das wie KDE aussieht, mußt Du etwas über Qt lernen, z.B.:

http://doc.trolltech.com/3.3/designer-manual-2.html

Ein MS Windows-Programm mit GUI in C++ ist also völlig anders aufgebaut als ein Linux-Programm mit GUI in C++ :wink: .

Viele Grüße

P.S.: Zu meiner Schulzeit gab's ja noch keinen Informatikunterricht. Mir scheint C++ irgendwie zu schwer zu sein, um den Schülern damit Erfolgserlebnisse zu bereiten. Diese Zeiger, Speicherverwaltungsfunktionen und ständigen Variablendeklarationen sind doch echt Quälerei.
Bitte sag mal bescheid, wenn Du meinst, daß Du C++ an Deiner Schule gelernt hast.
Würde mich mal interessieren, was bei so einem Schulunterricht letztlich rauskommt.

P.P.S.: Wenn euer Lehrer sich schon an Microsoft ranwirft, indem er euch C++-Windows-Programmierung beibringt, dann sollte er euch doch wenigstens bis zum MCAD

http://www.microsoft.com/germany/learning/mcad/default.mspx

bringen :mrgreen: .


erstmal vielen dank für deine antwort... tja... C++ an einer normalen schule.. unwarscheinlich.. C++ an einer Informatik HTL ... sehr wahrscheinlich ^^ rate mal, an welcher schule ich bin ^^ naja.... damit kann ich linux wohl vergessen, da es ja nicht möglich ist mfc anwendungen zu schreiben oder eben die Windows API dafür zu verwenden :-(

das heißt wieder windoof... naja.. kann man nix machen..

ps: c habe ich schon gelernt.. ist eigentlich eh ganz einfach.. ich bin mal auf klassen und vererbung gespannt ^^ *freu*

mfg, bernhard

pps: würd mich echt freuen, wenn wir platformübergreifend programmieren lernen würden.. aber dafür sind ja unsere lehrer "zu beschränkt"... wenn ich das mal so radikal ausdrücken darf

pps2: hm... vom mcad hab ich noch nie was gehört.. hört sich intressant an, obwohl ich die windoof os eig. ned sonderlich mag ^^ geschweigedenn microsoft... obwohl sich endlich die unternehmensphilosophie ein bisschen geändert hat
 
mkeyl schrieb:
Basic ist eh eine Sch*** Programmiersprache und jeder der sie für Lernzwecke benutzt gehört erschlagen)
Was für ein dümmliches Geblubber.
Erstens gibt es hundere von BASIC-Dialekten, das BASIC gibt es nicht (mehr wirklich).
Zweitens sind moderne Dialekte wie PureBasic mindestens genausogut für GUIs geeignet wie C/C++.
 
Ich muss meinem Vorschreiber einfach recht geben.
Wer pauschal schreibt diese oder jene Programmiersprache ist sch*** sollte einmal über das Programmieren nachdenken.
Welchen Sinn und Zweck erfüllt werden soll.

Es gibt Anwendungen die in VB ohne grosse Probleme schnell und zuverlässig erstellt werden. Da sehe ich keine Grund dies in C oder Java oder sonst was zu tun.

Zurück zu dem Thema Programmierung: Man kann unter Linux alle Funktionen entwickeln und testen. Wenn die Anwendungsumgebung Win ist, dann ist es möglich bei Zugriffen auf das Betriebssystem die Funktionen zuhause von Linux im Unterricht die von Win zu verwenden. Ist auch zusätzlich hilfreich, da man lernt in verschiedenen Umgebungen zu entwickeln. Das Ziel heisst ja nicht "entwickeln mit MS für win" sondern "erlernen und verstehen wie Aufgaben definiert und dann gelöst werden".
So war zumindest zu meiner Zeit. :)


bike
 
@mkeyl: Jo, "Qt für Windows" hatte ich jetzt ganz vergessen. Klar, das gibt's auch. Ist andererseits aber wohl auch nicht das, was der OP lernen soll.

@SuseFan15: Achso, Informatik HTL ... das ist in Österreich, oder ?

damit kann ich linux wohl vergessen, da es ja nicht möglich ist mfc anwendungen zu schreiben oder eben die Windows API dafür zu verwenden

Wie ich mit meiner ersten Antwort sagen wollte, ist wine ein "Nachbau" der Windows-API:

http://www.winehq.org/

Ob man jetzt dafür Windows-Programme unter Linux schreiben kann, weiß ich nicht. Ich schätze mal, der Compiler würde spezielle Windows-Bibliotheken einbauen wollen, aber nicht finden.

Es ist schon so, wenn Du Windows willst, kommst Du nur schwer an Microsoft vorbei, ist ja ihr Produkt.

Als Informatikspezialist solltest Du aber Linux jetzt auch nicht ganz vergessen (ohne hier eine Win-Lin-Diskussion starten zu wollen).

Zum Beispiel wäre es doch eine gute Übung, wenn Du Deine ersten Windows-GUIs gebaut hast, diese auch mal mit dem QtDesigner unter Linux zu bauen.
(Kann ich ja eurem Lehrer mal vorschlagen :mrgreen:).

Viele Grüße
 
abgdf schrieb:
@mkeyl: Jo, "Qt für Windows" hatte ich jetzt ganz vergessen. Klar, das gibt's auch. Ist andererseits aber wohl auch nicht das, was der OP lernen soll.

@SuseFan15: Achso, Informatik HTL ... das ist in Österreich, oder ?

damit kann ich linux wohl vergessen, da es ja nicht möglich ist mfc anwendungen zu schreiben oder eben die Windows API dafür zu verwenden

Wie ich mit meiner ersten Antwort sagen wollte, ist wine ein "Nachbau" der Windows-API:

http://www.winehq.org/

Ob man jetzt dafür Windows-Programme unter Linux schreiben kann, weiß ich nicht. Ich schätze mal, der Compiler würde spezielle Windows-Bibliotheken einbauen wollen, aber nicht finden.

Es ist schon so, wenn Du Windows willst, kommst Du nur schwer an Microsoft vorbei, ist ja ihr Produkt.

Als Informatikspezialist solltest Du aber Linux jetzt auch nicht ganz vergessen (ohne hier eine Win-Lin-Diskussion starten zu wollen).

Zum Beispiel wäre es doch eine gute Übung, wenn Du Deine ersten Windows-GUIs gebaut hast, diese auch mal mit dem QtDesigner unter Linux zu bauen.
(Kann ich ja eurem Lehrer mal vorschlagen :mrgreen:).

Viele Grüße

jop.. in österreich... htl spengergasse (sollt euch die was sagen.. ist angeblich sehr bekannt... auch im "ausland" ^^)

naja.. es ist nicht so, dass ich windoof will, aber es ist nunmal "nötig" sag ich mal... mitschreiben im unterricht usw. tue ich eh schon alles unter suse 10.1... aber mit dem programmieren ist das halt so ne sache ^^ wenn man einmal weis, wie man mit der programmierung unter linux umzugehen hat, dann ist das klasse, aber bis man da mal draufkommt, was da anders läuft ^^ dauerts halt ein wenig... wollt nur wissen, ob das relativ leicht möglich wäre... naja.. schade

hm.... wär möglich, dass das mit wine funzt...aber die progs reagieren auch sicher nicht immer gleich/ähnlich wie im windoof.

ja... übung wäre es sicher ne nette, plattformübergreifend zu programmieren... nur das prob ist: programmieren ist nicht das einzige fach, das ich habe ^^ da sind noch ungefähr 14 andere störfaktoren, die das nicht zulassen ^^
 
SuseFan15 schrieb:
naja.. es ist nicht so, dass ich windoof will

ja... übung wäre es sicher ne nette, plattformübergreifend zu programmieren... nur das prob ist: programmieren ist nicht das einzige fach, das ich habe ^^ da sind noch ungefähr 14 andere störfaktoren, die das nicht zulassen ^^

Wenn du den Job wirklich willst, solltest du dir abgewöhnen etwas anderes als doof zu bezeichnen.
Wenn du dein Studium bendet hast kann es sein, dass du ein Jobs bekommst wo du unter WIn programmieren bzw mit Win arbeiten musst.

Ein Dozent von mir hat gesagt, und ich unterstreiche dies:

Schimpfe nie über ein Firma oder rede schlecht von ihr, morgen bist du vielleicht dort beschäftigt und dein Gehaltsscheck von dem frühern Ungeliebten unterschrieben.

bike
 
bike schrieb:
SuseFan15 schrieb:
naja.. es ist nicht so, dass ich windoof will

ja... übung wäre es sicher ne nette, plattformübergreifend zu programmieren... nur das prob ist: programmieren ist nicht das einzige fach, das ich habe ^^ da sind noch ungefähr 14 andere störfaktoren, die das nicht zulassen ^^

Wenn du den Job wirklich willst, solltest du dir abgewöhnen etwas anderes als doof zu bezeichnen.
Wenn du dein Studium bendet hast kann es sein, dass du ein Jobs bekommst wo du unter WIn programmieren bzw mit Win arbeiten musst.

Ein Dozent von mir hat gesagt, und ich unterstreiche dies:

Schimpfe nie über ein Firma oder rede schlecht von ihr, morgen bist du vielleicht dort beschäftigt und dein Gehaltsscheck von dem frühern Ungeliebten unterschrieben.

bike

studium? ich bin gerade 15 geworden, und eine htl ist in österreich statt der 9schulstufe und folgenden (5jahre)... und in diesem fall halt informatik...

und ja.. mir ist bewusst, dass es mir passieren kann, egal wie sehr ich schimpfe über ein os.... dass ich irgendwann für die arbeiten werde.... und glaub mir.. ich erkenne auch an, dass es eine scheiß hacken ist so ein os zu programmieren, und dass es auch weitgehend recht gut funzt... aber durch die vielen fehler, die man mit der zeit miterlebt, wird man dann doch ein wenig zermürbt ^^ im großen und ganzen bleibt zu sagen... ms hat nicht so schlechte arbeit geleistet mit xp, auch wenn es orgendlich macken hat... aber welches os hat die nicht?

Wenn du dein Studium bendet hast kann es sein, dass du ein Jobs bekommst wo du unter WIn programmieren bzw mit Win arbeiten musst.
ist wahrsch. höchstwahrscheinlich ^^ zumindestens, wies derzeit aussieht.. ich kenn die wenigstens firmen, deren hauptaugenmerk auf linux liegt.
 
SuseFan15 schrieb:
naja.. es ist nicht so, dass ich windoof will, aber es ist nunmal "nötig" sag ich mal... mitschreiben im unterricht usw. tue ich eh schon alles unter suse 10.1... aber mit dem programmieren ist das halt so ne sache ^^ wenn man einmal weis, wie man mit der programmierung unter linux umzugehen hat, dann ist das klasse, aber bis man da mal draufkommt, was da anders läuft ^^ dauerts halt ein wenig... wollt nur wissen, ob das relativ leicht möglich wäre... naja.. schade

hm.... wär möglich, dass das mit wine funzt...aber die progs reagieren auch sicher nicht immer gleich/ähnlich wie im windoof.

Zunächst zu Wine: Ich habe noch nicht davon gehört, dass jemand Wine benutzt um unter Linux Windows Programme zu entwickeln und halte diese Vorgehensweise auch nicht für sinnvoll. Die umgekehrte Richtung jedoch (Portierung von Windows Programmen nach Linux) wird durchaus betrieben. Siehe hierzu http://www.winehq.org/site/docs/wine-faq/index#CAN-I-USE-WINE-TO-PORT-WIN32-SOURCES-TO-UNIX.
Da ihr C++ Programmierung lernern wollt spielt die direkte Verwendung der Windows API aber wahrscheinlich sowieso keine Rolle. Die MFC stellen gerade eine Abstraktionsschicht dar, die diese Ebene für den C++ Progammier versteckt.

Zum Thema Windows contra Linux: Da es bei dir um das Thema: "Grundkurs in GUI Programmeirung unter C++" (korriegiere mich bitte wenn ich das falsch verstanden habe) geht ist diese Frage (Windows oder Linux) letzlich egal. Du wirst vielleicht auch schon bemerkt haben, dass es in der Informatik oft nur recht wenige Grundideen gibt die auf viele unterschiedliche Arten zusammengesetzt werden können. Das entscheidende ist diese Ideen zu begreifen und mit ihnen umgehen zu können. Wenn dir das gelingt, wirst du dich später in recht kurzer Zeit auf neue Progammiersprachen und dir unbekannte Bibliotheken einstellen können (und das wirst du auch müssen wenn du später in der Informationsbranche arbeiten willst). Für einen Anfänger-Kurs is daher IMHO nicht die Frage entscheidend, welche Programmier-Tools in der Praxis die wichtigsten (bzw. die am weitesten verbreiteten) sind, sondern welche den Schülern/den Studenten das Lernen möglichst leicht machen. Wie ich schon in einem vorherigen Posting sagte halte ich C++ in diesem Zusammenhang nicht für die beste Wahl. Über MFC kann ich nichts sagen, da ich die nicht kenne. So ganz spontan würde ich die Kombination Python+Qt+PyQt empfehlen (geht sowohl unter Windows als auch unter Linux; auch den Qt-Desinger kann man für Python verwenden), hab aber keine Erfahrung ob sich das als Lern-Umgeung wirklich so gut eignet wie ich jetzt so spontan denke (zum "Rapid-Prototyping" und für nicht zu komplexe Anwendungen auf jeden Fall sehr nett).
 
So ganz spontan würde ich die Kombination Python+Qt+PyQt empfehlen

Dem kann ich mich nur anschließen.
Ich hab hier ja auch schon mal was mit dieser Kombination realisiert:

http://www.linux-club.de/ftopic64467.html

Viele Grüße
 
Oben