Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Welche Programmiersprache

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
17.03.2009, 18:21 Uhr
~programmer101
Gast


Hi zusammen
Ich habe folgendes Problem. Ich habe ein Programm in C++ geschrieben, ein 10-Finger-Lernprogramm. Da viele Schulen (noch) Mac haben, muss das Programm auch auf Mac laufen. Dazu kommt noch ein Problem: Einige Kinder sind sich mit dem Computer noch nicht so vertraut. Darum müsste der Installationsprozess umgangen werden.

Mein Ziel sieht folgendermassen aus:
Die Schüler bekommen ein CD; sie schieben die CD in den Computer und das Programm startet (per autostart.inf) plattformunabhängig und ohne Installation

Ist so etwas überhaupt realisierbar? Wenn ja: Wie? In welcher Programmiersprache?
Wenn nein: Wie kann man möglichst nahe an mein Ziel kommen? Mit welcher Programmiersprache? Was ist nicht realisierbar?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.03.2009, 18:39 Uhr
CppProgrammer



Die Binary selbst kann niemals platformunabhängig sein, dafür gibt es viel zu viele verschiedene Betriebssysteme, Prozessorarchitekturen, ...

Du kannst allerdings weitgehend "platformunabhängigen" Code schreiben, den du dann eben für jede Zielplatform separat kompilieren musst.

Für Konsolenprogramme ist das noch relativ einfach machbar, da Dinge wie Ein- und Ausgabe auf der Konsole, zur standardmäßigen C++ Bibliothek gehören.

Bei GUI-Programmen stellt sich das um einiges schwieriger dar, weil du für die graphische Darstellung von Fenstern usw. natürlich immer auf die API des jeweiligen Systems zugreifen musst.

Für solche Zwecke bieten sich jedoch verschiedene Bibliotheken an, mit denen man diese Probleme recht gut umgehen kann.

Mein persönlicher Favorit ist dabei Qt, kann ich nur bestens empfehlen!

Dieser Post wurde am 17.03.2009 um 18:43 Uhr von CppProgrammer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.03.2009, 18:51 Uhr
~f.-th.
Gast


Wenn die Schul-PCs das zulassen, eine startfähige CD mit eigenen Betriebssystem
ähnlich Knoppix erstellen. Statt Linux geht wahrscheinlich auch FreeDOS.

Dann ist das Betriebssystem auf den Schulrechnern eigendlich egal.
Ist halt die Frage ob die Sicherheitsmaßnahmen der Schulrechner das zulassen?

MfG f.-th.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
17.03.2009, 20:53 Uhr
0xdeadbeef
Gott
(Operator)


Ich bin eigentlich der Ansicht, dass die Schüler in der Schule sind, um etwas zu lernen, und dass sie bei dieser Gelegenheit eigentlich auch gleich lernen können, wie man ein Programm ausführt.

Ansonsten, in der Form wird das nicht gehen. MacOS X hat von Haus aus keinen CD-Autostart, und das ist aus Sicherheitsgründen auch ganz gut so (Du erinnerst dich möglicherweise noch an das Sony-Rootkit). Man kann den Mac womöglich so aufsetzen, dass er beim Einlegen von CDs eine bestimmte Aktion ausführt, vergleichbar mit der HAL-Schnittstelle unter Linux, aber von Haus aus macht er das nicht, und ich halte das auch nicht für empfehlenswert.

Du könntest nen Webserver ins Netz packen und das ganze als Java-Applet lösen. Als generische Lösung ist das im Zweifel sowieso sinnvoller, weil du davon ausgehen musst, dass Schulen ihre Schüler nicht irgendwelche CDs in die Schulrechner packen lassen, schon garnicht mit Autostart.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.03.2009, 13:17 Uhr
~programmer101
Gast


Hallo nochmals.
Also ich habe jetzt irgendetwas von GUI gehört. Ich habe mir nun QtCreator runtergeladen und damit eine GUI-Application gemacht. Auf der Internetseite steht, dass sei dann plattformunabhängig. Jedoch wird ja dann beim Kompilieren (auf Windows) eine exe-datei gemacht, welche auf dem Mac nicht gelesen werden kann. Kann man mit GUI oder/und QtCreator wirklich eine plattformunabhängige Application machen? Wenn ja: Wie?

Noch zur Sache von Oxdeadbeef:
Auf den Schulcomputern könnte man dann ein Sonderprogramm machen, welches man installieren kann, denn dort sollte es auch ohne CD laufen.

Ist es eine Lösung, wenn man eine Java-Application macht (.jar)? Kann man dann auch auf Mac einen Autostart machen?
Auch diese Lösung habe ich schon in Betracht gezogen. Ich habe dazu das Programm NetBeans genommen. Am Schluss sollen die Ergebnisse eines Lerndurchgangs des 10-Fingerprogramms per PHP in einer Mysql-Datenbank eingetragen werden. In C++ habe ich es mit einem WebView-Element gemacht. Zum holen der Daten habe ich auch eine PHP -Seite (welche die Mysql-daten ausliest) im WebView aufgerufen und dann den Quellcode ausgelesen. Gibt es ein Webview element auch in Netbeans? Oder kann man das irgenwie sicherer machen. Hab schon einmal irgend etwas gehört von einem HttpClient? Geht das mit dem? Wenn ja: Wo finde ich dazu ein gutes Beispiel/Anleitung?

Vielen Dank für eure Antworten.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.03.2009, 19:28 Uhr
CppProgrammer




Zitat von ~programmer101:

Also ich habe jetzt irgendetwas von GUI gehört. Ich habe mir nun QtCreator runtergeladen und damit eine GUI-Application gemacht. Auf der Internetseite steht, dass sei dann plattformunabhängig. Jedoch wird ja dann beim Kompilieren (auf Windows) eine exe-datei gemacht, welche auf dem Mac nicht gelesen werden kann. Kann man mit GUI oder/und QtCreator wirklich eine plattformunabhängige Application machen? Wenn ja: Wie?



Wie ich bereits in meinem ersten Post geschrieben hab, sind die Binaries selbst niemals platformunabhängig, müssen sie auch garnicht sein.

Mit einer cross-platform Bibliothek wie Qt kannst du nämlich den Quellcode deines Programms paltformunabhängig schreiben.

Diesen Quellcode musst du dann nur noch einmal auf Windows kompilieren, und einmal auf einem MAC.

So bekommst du zwei verschiedene Binaries, die eine wird auf Windows laufen, die andere auf MACs.

Dieser Post wurde am 20.03.2009 um 19:29 Uhr von CppProgrammer editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
21.03.2009, 00:12 Uhr
0xdeadbeef
Gott
(Operator)


Autostart von CD auf Mac geht nicht, ohne an der entsprechenden Maschine rumzufummeln. Weder mit nativen Programmen, noch mit JARs. Das ist per Design so, und auch eine gute Designentscheidung.

Ich meinte das mit dem Java-Applet so, dass im Netzwerk an einer zentralen Stelle ein Webserver aufgesetzt wird, der das Applet anbietet. Dann könnten die Schüler den Kram im Browser aufmachen, ohne dass die einzelnen Maschinen angefasst werden müssten.

Direkt aus der Applikation in eine Datenbank zu schreiben, halte ich allerdings für keine gute Idee - wenn da nur ein technisch versierter Schüler dabei ist (und das wird er sein), snifft der sofort deinen Netzwerktraffic, findet darin die Zugangsdaten für die Datenbank und schreibt dir da irgendwelchen Unsinn rein (31337 Anschläge pro Minute, vermutlich). Setz besser ein Servlet auf, das das Interface beschränkt und selbst in die Datenbank schreibt, dann muss die auch nur auf einem UNIX-Socket horchen (oder loopback, wenn dir das lieber ist). Das wird dich zwar auch nicht vor allem Unfug schützen, aber zumindest kann dir nicht jeder Depp die Datenbank löschen oder die Daten seiner Mitschüler klauen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: