Wie kann ich GUI-Programmierung in C durchführen? [closed]
Lesezeit: 8 Minuten
Algorithmist
Ich möchte Grafikprogrammierung in C durchführen. Ich habe viel nach dem Compiler gesucht, der eine Vielzahl von Funktionen für die GUI-Programmierung in C bereitstellt, aber ich konnte nichts finden.
Grundsätzlich möchte ich Schaltflächen zeichnen und dann die Auswahl des Benutzers akzeptieren und eine entsprechende Aktion ausführen. Es wäre hilfreich, wenn Sie einen C-Compiler oder eine Bibliothek vorschlagen könnten, die ich meinem Compiler hinzufügen kann. Ich arbeite auf dem Windows-Betriebssystem.
Derzeit verwende ich den TURBO C-Compiler, der keine direkten Methoden zum Erstellen von Schaltflächen unterstützt. Jede Hilfe wäre willkommen.
Warum würden Sie GUI mit C machen wollen? Ist es nicht einfacher, Java, Python oder C++ zu verwenden?
– pajton
27. März 2011 um 15:04 Uhr
Beenden Sie die Verwendung von TURBO C und beginnen Sie mit der Verwendung eines modernen Compilers.
– David Heffernan
27. März 2011 um 15:55 Uhr
@pajton: Korrektur: Ist es nicht einfacher, Python* zu verwenden?
– Matt Tischler
27. März 2011 um 16:42 Uhr
@Gihan De Silva, der von Ihnen bereitgestellte Link existiert nicht mehr. Es lebe der Turbo
– Willy satrio nugroho
15. August 2019 um 10:30 Uhr
Cody Grey
Das haben Sie garantiert nichts mit dem Compiler zu tun. Alles, was Compiler tun, ist, den ihnen gegebenen Code zu kompilieren. Was Sie suchen, ist eine GUI-Bibliothek, für die Sie mit jedem beliebigen Compiler Code schreiben können.
Abgesehen davon sollte Ihre erste Aufgabe natürlich darin bestehen, Turbo C aufzugeben. Dieser Compiler ist ungefähr 20 Jahre alt, und es tut Ihnen keinen Gefallen, ihn weiterhin zu verwenden. Du kannst nicht schreiben modern GUI-Anwendungen, da sie nur 16-Bit-Code erzeugen. Alle modernen Betriebssysteme sind 32-Bit und viele sind jetzt 64-Bit. Es ist auch erwähnenswert, dass 64-Bit-Editionen von Windows keine 16-Bit-Anwendungen nativ ausführen. Dafür brauchen Sie einen Emulator; Es wird nicht wirklich viel Erfolgsgefühl hervorrufen, wenn Sie nur Apps schreiben können, die in einem DOS-Emulator funktionieren. 🙂
Microsofts Visual Studio Express C++ steht als kostenloser Download zur Verfügung. Es enthält denselben Compiler, der in der Vollversion der Suite verfügbar ist. Das C++-Paket kompiliert auch reinen C-Code.
Und da Sie in Windows arbeiten, ist die Windows-API eine natürliche Wahl. Es ermöglicht Ihnen, native Windows-Anwendungen zu schreiben, die Zugriff auf alle GUI-Steuerelemente haben. Du wirst es finden eine schöne Anleitung hier zum Schreiben von WinAPI-Anwendungen in C. Wenn Sie sich für Visual Studio entscheiden, enthält es auch Boilerplate-Code für eine leere WinAPI-Anwendung, mit der Sie schnell einsatzbereit sind.
Wenn es Ihnen wirklich wichtig ist, das zu lernen, Charles Petzold Windows programmieren ist die kanonische Ressource des Themas und auf jeden Fall eine Lektüre wert. Die gesamte Windows-API wurde in C geschrieben, und es ist durchaus möglich, voll funktionsfähige Windows-Anwendungen in C zu schreiben. Sie brauchen kein stinkendes C++.
Das ist der Weg Ausweis mach es zumindest. Wie die anderen Antworten vermuten lassen, GTK ist auch eine Option. Aber die Anwendungen, die es generiert, sehen unter Windows einfach nur schrecklich aus.
BEARBEITEN: Es sieht so aus, als wären Sie nicht der Einzige, der “GUI”-Anwendungen mit einem antiquierten Compiler schreiben möchte. Eine Google-Suche ergibt folgende Bibliothek: TurboGUI: Ein GUI-Framework für Turbo C/C++:
Wenn Sie Turbo C verwenden müssen, ist dies möglicherweise eine Option.
@Algorithmist: Ich habe Visual Studio vorgeschlagen; Es ist eine IDE, die mit dem Compiler von Microsoft geliefert wird. Die Express-Edition (die denselben Compiler wie die Pro-Editionen enthält) ist ein kostenloser Download. Siehe meine Antwort für den Link. MinGW ist eine weitere Option. Es ist eine Portierung von GCC auf Windows. Ich habe jedoch noch nie etwas davon verwendet. Visual Studio ist meine bevorzugte Umgebung für die Windows C- und C++-Entwicklung. Es gibt hier auf Stack Overflow weitere Fragen zu alternativen C-Compilern für Windows, wenn Sie daran interessiert sind, das Feld zu erkunden.
Die bekannteste Bibliothek zum Erstellen einer GUI in C-Sprache ist sicherlich GTK.
Mit dieser Bibliothek können Sie ganz einfach einige Schaltflächen erstellen (für Ihr Beispiel). Wenn ein Benutzer auf die Schaltfläche klickt, wird ein Signal ausgegeben und Sie können einen Handler schreiben, um einige Aktionen auszuführen.
Das Problem, das ich sehe, ist der alte Turbo-C-Compiler. Ich bin mir nicht sicher, ob es und die es umgebenden Bibliotheken aktuell genug sind, um GTK-Builds zu verarbeiten.
– AndreasT
27. März 2011 um 15:19 Uhr
“Die bekannteste Bibliothek zum Erstellen einer GUI in C-Sprache ist sicherlich GTK.” Vielleicht ist es in Ihrer Welt das berühmteste. Ich dachte immer, Win32 sei bekannter.
– David Heffernan
27. März 2011 um 15:55 Uhr
“Ich dachte immer, Win32 sei bekannter.” — Du hast richtig gedacht. Win32 ist weithin bekannt für seine Portabilität.
– Daniel
28. April 2017 um 10:51 Uhr
Das Kompilieren von GTK auf einem Macbook ist ein Albtraum.
– Samie Bencherif
26. März 2019 um 21:20 Uhr
Schwarzbär
Verwenden Sie Win-APIs in Ihrer Hauptfunktion:
RegisterClassEx() Hinweis: Sie müssen einen Zeiger auf eine Funktion (normalerweise aufgerufen WndProc), das Windows-Meldungen wie WM_CREATE, WM_COMMAND usw. verarbeitet
Schreiben Sie dann eine weitere Funktion, die die Nachrichten von win verarbeitet (erwähnt in #1). Wenn Sie die Nachricht WM_CREATE erhalten, müssen Sie CreateWindow() aufrufen. Die Klasse ist, welches Steuerelement dieses Fenster ist, zum Beispiel ist “Bearbeiten” ein Textfeld und “Schaltfläche” ist eine.. Schaltfläche :). Sie müssen für jedes Steuerelement eine ID angeben (frei wählbar, aber eindeutig). CreateWindow() gibt ein Handle zu diesem Steuerelement zurück, das gespeichert werden muss. Wenn der Benutzer auf ein Steuerelement klickt, erhalten Sie die WM_COMMAND-Nachricht mit der ID dieses Steuerelements. Hier können Sie dieses Ereignis bearbeiten. Sie könnten nützlich sein SetWindowText() und GetWindowText() mit dem Sie den Text eines beliebigen Steuerelements festlegen / abrufen können.
Sie benötigen nur das Win32-SDK. Du kannst es bekommen hier.
Du Wille Benötigen Sie jedoch das Windows SDK. Lade es herunter hier. (Es ist in Visual Studio enthalten. Sie müssen es nur separat herunterladen, wenn Sie einen anderen Compiler verwenden möchten.)
– Cody Grey ♦
27. März 2011 um 15:25 Uhr
@Cody Gray: das habe ich vergessen, wahrscheinlich war es in meinem masm32-Setup enthalten. 🙂 Ich werde meine Antwort ergänzen
– Schwarzbär
27. März 2011 um 15:27 Uhr
sergio
C ist eher eine Hardware-Programmiersprache, es gibt einfache GUI-Builder für C, GTK, Glade usw. Das Problem besteht darin, ein Programm in C zu erstellen, das der einfache Teil ist, und eine GUI zu erstellen, die ein einfacher Teil ist, der schwierige Teil ist Beides zu kombinieren, eine Schnittstelle zwischen Ihrem Programm und der GUI herzustellen, ist ein Problem, und verschiedene GUIs verwenden unterschiedliche Methoden, einige werfen globale Variablen, einige verwenden Slots. Es wäre schön, einen GUI-Builder zu haben, der Ihre C-Programmvariablen und -ausgaben einfach binden würde. CLI-Programmierung ist einfach, wenn Sie Speicherzuweisung und Zeiger überwinden, GUI können Sie eine IDE verwenden, die Drag & Drop verwendet. Aber insgesamt denke ich, dass es einfacher sein könnte.
Der AC-Compiler selbst bietet Ihnen keine GUI-Funktionalität, aber es gibt viele Bibliotheken für solche Dinge. Am beliebtesten ist wohl GTK+aber es kann etwas zu kompliziert sein, wenn Sie gerade erst anfangen und schnell eine GUI zum Laufen bringen möchten.
Für etwas einfacheres würde ich empfehlen IUP. Damit können Sie eine einfache GUI-Definitionssprache namens LED verwenden, um Steuerelemente anzuordnen (aber Sie können dies auch mit reinem C tun, wenn Sie möchten).
Ich kann Ihnen jetzt nicht genug dafür danken, dass Sie IUP empfohlen haben, weil ich mir in den letzten 6 Tagen mit GTK die Haare ausgerissen habe und nirgendwo hingekommen bin.
– Person der Mensch
20. Dezember 2021 um 19:09 Uhr
Derek Hoge
Windows-API und Windows-SDK wenn du alles selber bauen willst (oder) Windows-API und Visual C Express. Holen Sie sich die Ausgabe von 2008. Dies ist eine ausgewachsene IDE und eine bemerkenswerte Software von Microsoft für die Windows-Entwicklung.
Alle Betriebssysteme sind in C geschrieben. Daher ist jede Anwendung, Konsole/GUI, die Sie in C schreiben, die Standardschreibweise für das Betriebssystem.
Ich kann Ihnen jetzt nicht genug dafür danken, dass Sie IUP empfohlen haben, weil ich mir in den letzten 6 Tagen mit GTK die Haare ausgerissen habe und nirgendwo hingekommen bin.
– Person der Mensch
20. Dezember 2021 um 19:09 Uhr
14181500cookie-checkWie kann ich GUI-Programmierung in C durchführen? [closed]yes
Warum würden Sie GUI mit C machen wollen? Ist es nicht einfacher, Java, Python oder C++ zu verwenden?
– pajton
27. März 2011 um 15:04 Uhr
Beenden Sie die Verwendung von TURBO C und beginnen Sie mit der Verwendung eines modernen Compilers.
– David Heffernan
27. März 2011 um 15:55 Uhr
@pajton: Korrektur: Ist es nicht einfacher, Python* zu verwenden?
– Matt Tischler
27. März 2011 um 16:42 Uhr
@Gihan De Silva, der von Ihnen bereitgestellte Link existiert nicht mehr. Es lebe der Turbo
– Willy satrio nugroho
15. August 2019 um 10:30 Uhr