2 Prozesse
-
Also wenn du den Unterschied nicht kennst und wenn du, wie du ja selbst sagst,
noch nicht so fit mit C++ bist wirst du das kaum hinkriegen. Die Erstellung
von multithreaded Anwendungen ist nämlich alles andere als trivial.
Die Alternative ist ne reine Windows-Anwendung, im Gegensatz zu einer
Konsolen-Anwendung. Dort kannst du mit Timer-Messages arbeiten, brauchst aber
für deine "Eingaben" dann natürlich eine Windows-GUI.mfg JJ
-
Das habe ich mir auch schon gedacht.
In der Schule habe ich meinen Info-Lehrer (ich bin 14 - 9. Klasse
) danach gefragt und wollte wissen, woher ich Visual Basic herbekomme (Borland C++ Builder sah mir sehr, sehr kompliziert aus). Er meinte, das geht alles in C++ in der Konsole. Da gäbe es eine Header-Datei für mehrere Threads gleichzeitig. Vorübergehend könnte ich mir auch so helfen: ich rufe den 2. Thread nicht als Thread auf sondern als extra Programm (.exe). Dann könnte ich vom Hauptprogramm Parameter übergeben (z. B. zeit.exe -t 15 -m).
BTW: Was ist eine Windows-GUI?
-
Soso Hr. "Webdesigner" :), also VB ist für sowas nicht besonders gut geeignet.
Man unterscheidet zwischen Prozessen und Threads.
Mit ShellExecute() kannst du ein anderes Programm wie Notepad u.a. aus deinem
eigenen Programm heraus starten. Damit hast du zwei Prozesse.
Weniger das Anlegen aber insbesondere das Verwalten/Synchronisieren von
Threads ist recht schwierig und in VB "quasi" nicht möglich und in C++ nichts
für Anfänger.
Der Aufruf eines zweiten Programmes aus deiner Konsolenanwendung ist nicht so
schwer. Aber wo willst du eigentlich die Uhrzeit anzeigen, in einer zweiten
Konsole oder wo ??mfg JJ
-
Es kommt mir darauf an, dass man während einer langwierigen Berechnung noch etwas anderes machen kann. Es ist ja egal, die Berechnung kann auch währenddessen unterbrochen werden. Dann ist vielleicht "multithread" der falsche Begriff dafür.
Auf VB gekommen bin ich so: Eigentlich wollte ich ja im C++-Builder coden. Als ich dann aber den Quelltext mal gesehen habe, wie "Canvas->" habe ich nur Bahnhof verstanden. Was soll das "->"? Objektorientiert? Da sieht mir VB mit seinen Schlüsselwörtern viel logischer und einfacher aus.Die Uhrzeit wollte ich eigentlich im gleichen Fenster anzeigen.
BTW: Was ist WINDOWS-GUI?
BTW: Gibt es für multithreaded-Anwendungen keinen Standard-Code (C++ oder C ist egal)?
BTW: Kann die main() von Windows Parameter erhalten?
-
Hi,
C++ ist C++. Du programmierst nicht in Borland Builder oder Visual C++, du programmierst C++.
Und Visual Basic ist eine IDE für Basic, sozusagen eine eigene Sprache, aber das hat absolut nichts mit C++ zu tun, es ist also nicht Mal eine Alternative.
Logischer ist Basic auch nicht, es ist vielleicht für Leute leichter verständlich, die anfangen, ja, aber das ist eine andere Sache. Dadurch, dass es komplizierter ist, bietet C++ auch mehr Möglichkeiten selber etwas zu bestimmen und dadurch auch mehr Möglichkeiten etwas detailliert zu programmieren und dadurch schneller und im Endeffekt übersichtlicher zu gestalten.
a-> = (*a).Wenn du *variable nicht verstehst, dann solltest du dir vorerst ein ordentliches C++ Buch nehmen und durchackern, sonst wird das nichts.
EDIT:
BTW: Was ist WINDOWS-GUI?
Graphical User Interface, eine graphische Schnittstelle für Benutzer. Darüber kann ein Benutzer etwas Bestimmtes fein faul über eine schöne Fensterumgebung bearbeiten und muss z.B. nicht mühsam Befehle in die Konsole kloppen, um etwas zu erreichen. Die Maus ist hier z.B. auch zu gebrauchen, bei Konsolenanwendungen geht das selten.
BTW: Gibt es für multithreaded-Anwendungen keinen Standard-Code (C++ oder C ist egal)?
Hm?
Threads sind bs-spezifisch und daher nicht im Standard erhalten. Die überaus nützliche Zusatzbibliothek boost ist allerdings für alle wichtigen BS bereitet und erlaubt daher die konfortablere Handhabung von Threads.BTW: Kann die main() von Windows Parameter erhalten?
3 Parameter:
int main(int argc, char* argv[], char* handels_ueblichen_namen_vergessen_hab)argc bestimmt die Anzahl der Argumente in argv, argv enthält dieselben. Dabei handelt es sich um Strings. argv[0] ist der erste String, der enthält den Dateinamen (ich weiß gerade nicht, ob +pfad etc.).
argv[1] speichert dann das erste Argument, argv[2] das zweite.Aufruf schrieb:
datei.exe bla blabla
Jetzt wäre strcmp(argv[1], "bla") und strcmp(argv[2], "blabla").
handels_ueblichen_namen_vergessen_hab speichert etwas, von dem ich vergessen habe, was es ist. Das kannst du aber auch weglassen.MfG Eisflamme
-
1. Ich weiß schon den Unterschied zwischen C++ und Basic. Ich mische da nichts durcheinander.
2. a->=(*a) - Was bringt das? *a ist ja der Zeiger auf den Speicherbereich von a. Warum schreibt man nicht *a=&a? &a ist ja die Adresse von a. Also ich meine, ich habs noch nicht ausprobiert, da ich im Moment nur Funktionsparameter, wie z. B.void funktion(int& a,int& b,float& c)
benutze, um in die Variablen und nicht in die Kopie zu speichern.
3. Ein C++-Buch habe ich mir schon zu Gemüte geführt.
a) Kurs aus Computerbild
b) jetzt noch aus Informatik aus der Schule. Da ist zwar im Moment noch C dran, aber wir nähern uns C++. Wir machen zum Beispiel jetzt Grafikausgaben in einem Windows-Fenster.
-
Mis2com schrieb:
Hi,
C++ ist C++. Du programmierst nicht in Borland Builder oder Visual C++, du programmierst C++.
Und Visual Basic ist eine IDE für Basic, sozusagen eine eigene Sprache, aber das hat absolut nichts mit C++ zu tun, es ist also nicht Mal eine Alternative.Ich sagte doch schon, ich unterscheide zwischen verschiedenen Programmiersprachen und ich weiß auch, was IDEs sind.
Und jetzt noch ne Frage:
Mis2com schrieb:
Lars Hupel schrieb:
BTW: Gibt es für multithreaded-Anwendungen keinen Standard-Code (C++ oder C ist egal)?
Hm?
Threads sind bs-spezifisch und daher nicht im Standard erhalten. Die überaus nützliche Zusatzbibliothek boost ist allerdings für alle wichtigen BS bereitet und erlaubt daher die konfortablere Handhabung von Threads.Wie geht denn das nun mit "boost"?
Hat das irgendetwas mit
http://www.c-plusplus.net/forum/viewtopic.php?t=90710
zu tun?
-
Yes
-
John Doe schrieb:
Yes
Da weiß ich trotzdem noch nicht, wie ich das zu verstehen habe!
Da hat doch jemand auf der 1. Seite dieses Beitrages geschrieben "Nettes Beispiel für boost::thread". Kann mir jemand diesen Quelltext verallgemeinern und besser kommentieren? Danke!
-
Nachfolgender Link ist eine Einführung vom Autor dieser LIB inklusive Listings.
http://www.cuj.com/documents/s=8470/cuj0205kempf/
Wenn du da nicht durchsteigst, dann lass es lieber, dann hat es wrklich keinen
Sinn.Alternativ:
Bau dir das ganze als VB-Programm und realisiere die Anzeige der Uhrzeit über
einen Timer.mfg JJ
-
Danke, nun bin ich soweit. Kann das sein, dass die thread.hpp bei Dev-C++ im Verzeichnis include/wx/ liegt und thread.h heißt? Die thread.hpp gibts nämlich nicht!
-
Falsch verstanden !!!!
Boost gehört nicht zu deiner IDE(Compiler). Es handelt sich hierbei um eine
frei verwendbare Bibliothek die du dir runterladen und "installieren" musst.
www.boost.orgmfg JJ
-
Leider kann ich die Installationsanweisung nicht verstehen! Ich habe das Paket gedownloadet und das Verzeichnis "boost" in den "include"-Ordner vom Compiler installiert. Und nun?
-
Wer lesen kann ist klar im Vorteil.
http://www.boost.org/more/getting_started.html
-
John Doe schrieb:
Wer lesen kann ist klar im Vorteil.
http://www.boost.org/more/getting_started.htmlDanke, ich kann das lesen. Auf der Seite war ich ja schon
!!! Ich verstehe es nur nicht... Das ist mir irgendwie zu hoch. Liegt vielleicht daran, dass viele englische Fachbegriffe mit drinnen sind.
-
Sorry, ich will dir ganz sicher nicht zu nahe treten. Aber ich glaube das Ganze
ist (noch) ne Nummer zu hoch für dich. Versuchs mit VB oder was ganz anderem,
aber nicht in C/C++.mfg JJ
-
Kein Problem, das habe ich mir schon gedacht
Ich versuchs mal in VB oder frage noch mal meinen Lehrer, falls der mehr weiß. Aber erstmal danke für deine Hilfe
Habe leider die Eigenschaft, andere Leute mit Fragen zu löchern.