Forum: PC-Programmierung C/C++ Code mit HTML GUI


von Dominik P. (dominik1982)


Lesenswert?

Hallo Forengemeinde.

Um meine (kleinen) Programmierkenntnisse in C/C++ auszubauen und mich 
gleichzeitig mit HTML zu beschäftigen, würde ich gerne ein GUI auf HTML 
Basis erstellen und daraus Funktionen aus einem C/C++ Code starten. Das 
ganze soll dann auf einem Raspberry Pi laufen. Zuerst würde ich damit 
einwenig mit den GPIOs experimentieren.

Wie könnte der Ansatz für mein Vorhaben aussehen? Wie könnte die 
Schnittstelle zwischen meinem C Code zur HTML GUI aussehen? Ich wäre um 
jede Anregung dankbar.

Schönes Wochenende und besten Gruß
Dominik

von Peter II (Gast)


Lesenswert?

kommt darauf an, wo du anfangen willst.

Ohne eine kompletten webserver zu programmieren, kannst du einfach ein 
CGI Programm schreiben.
Wenn du alles selber machen willst, dann musst auch den Webserver selber 
schreiben. Zum Datenaustausch biete sich json an, das lässt dann recht 
einfach im Browser per JavaScript verarbeiten.

von Dominik P. (dominik1982)


Lesenswert?

Hallo Peter

Danke für die schnelle Antwort. Da die HTML und Server Geschichte für 
mich Neuland ist habe ich mal schnell gegoogelt was CGI ist. Es scheint 
genau die von mir gesuchte Schnittstelle zu sein.

Wenn ich das richtig verstehe unterstützt C das CGI Protokoll. Ich kann 
also Daten von meiner HTML Seite die auf irgendeinem Browser ausgeführt 
wird, lesen und schreiben, im C Code.

Gibt es eine Bibliothek für CGI die ich in meinen C Code einbinkann?


Gruß Dominik

von Peter II (Gast)


Lesenswert?

Dominik P. schrieb:
> Wenn ich das richtig verstehe unterstützt C das CGI Protokoll.

nein. CGI ist ein Standard den man von C aus nutzen kann. (wie auch mit 
jeder anderen Sprache).

> Ich kann also Daten von meiner HTML Seite die auf irgendeinem Browser
> ausgeführt
> wird, lesen und schreiben, im C Code.
das klingt merkwürdig.

Mit CGI kann man aus C Daten für den Browser bereitstellen.

> Gibt es eine Bibliothek für CGI die ich in meinen C Code einbinkann?
keine Ahnung, bestimmt. Aber ich würde dir Raten erst mal ohne 
anzufangen, dann versteht du wie das genau abläuft.

> Es scheint genau die von mir gesuchte Schnittstelle zu sein.
CGI hat aber den Nachteil, das das "Programm" bei jeden Aufruf vom 
Browser gestartet und dann beendet wird. Es ist also damit nicht 
(einfach) Möglich sich Sachen zu merken.

von Witty (Gast)


Lesenswert?

Das ruft doch geradezu nach Wt: https://www.webtoolkit.eu/wt

Ein generelles Verständnis darüber, was eine "HTML GUI" eigentlich ist 
und wie eine Web-Anwendung konzeptionell funktioniert, sollte man sich 
aber auf jeden Fall zuerst aneignen, ansonsten dürfte das ganze 
Vorhaben ziemlich haarig werden.

von Dominik P. (dominik1982)


Lesenswert?

Vielleicht sollte ich meine Ziele etwas kleiner stecken.

Gibt es eine einfachere Methode den Raspberry Pi mit einer GUI zu 
programmieren am liebsten mit C.

HTML kann ich mir unabhängig davon aneignen.

von Peter II (Gast)


Lesenswert?

Dominik P. schrieb:
> Gibt es eine einfachere Methode den Raspberry Pi mit einer GUI zu
> programmieren am liebsten mit C.

wo soll denn die Gui dargestellt werden? Direkt am Rapi oder remote?

von Mark B. (markbrandis)


Lesenswert?

Um einmal die GUI-Programmierung an sich zu üben, würde ich ein 
entsprechendes Tutorial auf dem PC durcharbeiten. Danach kann man die 
erworbenen Kenntnisse immer noch auf einem Raspberry Pi mit Display oder 
sonstwo umsetzen.

von Mano W. (Firma: ---) (manow)


Lesenswert?

Witty schrieb:
> Das ruft doch geradezu nach Wt: https://www.webtoolkit.eu/wt

Wt hat mich auch schon mal interessiert, aber ich habe es noch nicht 
geschafft, mir anzusehen.

Als alternative für C++ fällt mir noch poco ein. Ein Beispiel: 
https://macchina.io/docs/00100-GuidedTour.html

Wenn man dynamische Webseiten programmieren möchte, ist C++ nicht die 
erste Wahl. Da haben sich andere Sprachen + Frameworks etabliert.


Auf deinem Raspi läuft vermutlich ein Linux-System darauf. Da gibt's ein 
paar Möglichkeiten eine GUI zu programmieren. Musst Du ja nicht auf dem 
Raspi machen...

Ich denke viele programmieren mit Python auf dem Raspi. Da findet mal 
auch gleich was zum Thema Webserver: 
https://www.raspberrypi.org/learning/python-web-server-with-flask/ Vllt. 
ist eine bessere Wahl. Um Programmierkenntnisse zu verbessern, ist 
Python sicherlich keine schlechte Wahl. Da gibt es auch einiges an 
Beispielen und man schafft in kurzer Zeit mehr, da es viele Bibliotheken 
gibt, die man benutzen kann.

von Witty (Gast)


Lesenswert?

Mano W. schrieb:
> Witty schrieb:
>> Das ruft doch geradezu nach Wt: https://www.webtoolkit.eu/wt
> Wt hat mich auch schon mal interessiert, aber ich habe es noch nicht
> geschafft, mir anzusehen.

Wirklich viel habe ich selbst auch noch nicht damit gemacht,
abgesehen von einem kleineren Hobbyprojekt. Da ich sonst relativ
viel mit Qt mache, hatte mich einfach mal interessiert, wie sich
wohl so ein "Web-Qt" anfühlen mag. Ist auf jeden Fall mal eine andere 
Herangehensweise abseits der sonst so üblichen Web-Frameworks.

> Als alternative für C++ fällt mir noch poco ein. Ein Beispiel:
> https://macchina.io/docs/00100-GuidedTour.html

Das sieht auch nicht schlecht aus. Würde ich im direkten Vergleich zu Wt 
jetzt mal als eher Low Level einordnen. Kommt halt am Ende darauf an, 
was man konkret machen will.

> Wenn man dynamische Webseiten programmieren möchte, ist C++ nicht die
> erste Wahl. Da haben sich andere Sprachen + Frameworks etabliert.

Das ist wohl wahr. Python/web2py wäre da mein "Geheimtipp".

Für spezielle Fälle, z.B. wenn man im Backend an GPIOs wackeln will, 
bietet es sich aber durchaus mal an, C++ einzusetzen. Und natürlich
in solchen Fällen, in denen man gezielt seine C++-Kenntnisse
verbessern will. :-)

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.