Zum Inhalt springen

Bubble

Mitglieder
  • Gesamte Inhalte

    1565
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Bubble

  1. ThreadFunc ist der Zeiger auf die Eintrittsfunktion (Adresse) des Threads. Dort beginnt die Ausführung Deines Threads. Die Funktion muss so aussehen: DWORD WINAPI ThreadFunc(LPVOID parameter); Mehr findest Du in der MSDN unter "CreateThread" und "ThreadProc". Dort ist auch ein Link zu einem Beispiel.
  2. Benutzt es Swing? Hat es eine sehr aufwendige Benutzeroberfläche, oder ist es eher einfach aufgebaut? Also Apache verwendet mit Sicherheit ein geeignetes Design mit einer Abstraktionsebene, die genau festgelegte Schnittstellen hat. Unterhalb dieser Ebene werden sicherlich alle betriebssystemspezifischen Anteile jeweils ausgetauscht. Die Unterschiede zwischen den einzelnen Versionen dürften somit erheblich sein, von einer einfachen Anpassung würde ich daher nicht sprechen wollen, das Design muss dafür von Anfang an geeignet sein. Es ist schon etwas aufwendiger, denn Du musst das, was in den C-Header-Dateien steht, in Delphi umsetzen. Wenn Du C verwendest, benutzt Du einfach die (beim PSDK, DirectX, usw.) mitgelieferten Header-Dateien. Und wenn von den APIs eine neue Version erscheint, musst Du nicht selbst nacharbeiten, um sie nutzen zu können.
  3. Hier muss ich protestieren. Swing ist vom Aufbau her sicherlich eine gute Idee, das Resultat ist, meiner Ansicht nach, im Vergleich zu GUI-Bibliotheken mit ähnlichen Intentionen jedoch zu langsam. Der langsame Bildaufbau, bei kleinen Tools noch ertragbar, von großen Swing Programmen (z.B. Forte) zerrt aufgrund des mangelnden Ansprechverhaltens so enorm an meinen Nerven, dass ich derzeit kein großes Swing basierendes Programm mehr freiwillig nutze und Forte ebenfalls deinstalliert habe. Ich denke, es gibt schon einen Grund, dass beispielsweise Eclipse nicht Swing als GUI-Bibliothek verwendet. Im Vergleich zu Swing Anwendungen haben .NET GUI Anwendungen (auch wenn sie selbst gezeichnete Controls verwenden und nicht auf Windows-Controls zurückgreifen) ein meiner Erfahrung nach deutlich besseres Ansprechverhalten. Und genau das ist mein Hauptproblem mit Swing: Es ist nicht schnell genug. Da hilft auch ein gutes Design nicht drüber hinweg, wenn der Benutzer später leidet. Der Vergleich mit der Windows API (und genauso anderen C basierten GUI Bibliotheken, z.B. unter Unix oder die vom Amiga) ist jedoch nicht ganz gerecht, da sie langsam gewachsen ist und aus Kompatibilitätsgründen bis heute eine Menge mitschleppt und nichts Grundlegendes umgestellt wurde. Swing hingegen war eine objektorientierte Neuentwicklung. Ich vermute, dass sich der GUI RAD Bereich unter Windows mehr in Richtung .NET begibt, sicherlich auch aufgrund der gut gelungenen Programmiersprache C#. Für Java mit Swing spricht weiterhin die Plattformunabhängigkeit, die andere Sprachen und Bibliotheken momentan in dieser Weise nicht bieten. Auch wenn in der Praxis für eine Anwendung meist eine bestimmte Zielplattform vorgegeben ist, kann man den Java-Code problemlos wieder verwenden, auch wenn sich im nächsten Projekt die Vorgabe ändert. C ist zwar prinzipiell auch portabel (erneute Kompilierung nötig, es darf auf keine von Plattformen abhängigen Bibliotheken zurückgegriffen werden, man darf keine festen Annahmen über Datentypen, Wertebereiche, usw. machen), in der Praxis ist es jedoch deutlich schwieriger.
  4. Sicher nicht. Deswegen wollte ich auch einmal die Frage in den Raum stellen, auf welche Klassenbibliothek (.NET Bibliotheken, MFC, VCL, QT, usw.) man setzen sollte, auch in Hinblick auf eine zukünftige Weiterentwicklung durch den Hersteller. Mir ist natürlich klar, dass es keine Antwort für alle Projekte gibt, aber es gibt sicher Unterschiede, wenn auch nur "gefühlte", was die Zukunfssicherheit angeht.
  5. Richtig, aber die Frage, die ich mit stelle, ist ob diese Klassenbibliotheken eine Zukunft haben. Ich vermute bei der Entwicklung von GUIs unter Windows und RAD im Allgemeinen geht es zukünftig deutlich in Richtung .NET. Und wer für ein GUI-Programm wirklich alle Features von Windows ausnutzen will, wird sein Programm oder einige Teile davon vermutlich eh direkt gegen das Win32 API programmieren (müssen).
  6. Bubble

    Sortierprogramm

    Richtig. Muss ungefähr so aussehen: class Person { public: std::string name; std::string vorname; // usw. }; Dann brauchst Du noch eine Funktion bool operator<(const Person& a, const Person& ; Als "Haufen" käme das std::vector Template in Betracht. Instanzieren kannst Du es in der Form std::vector<Person> meineListe; Elemente (hier z.B. eine Klasseninstanz "meinePerson") fügst Du einfach hinzu mit: meineListe.push_back(meinePerson); std::vector std::sort(meineListe.begin(), meineListe.end()); (Vorher den Header <algorithm> einbinden) Bis der adressierbare Speicher voll ist. s.o. (z.B. std::vector) (Anmerkung: Alle Beispiele aus dem Kopf aufgeschrieben, wenn etwas nicht klappt C++ Doku lesen, es ist sicherlich so ähnlich ;-))
  7. Bubble

    Sortierprogramm

    Da Du ja C++ verwendest, kannst Du einen Sortieralgorithmus der STL verwenden. Ist in Deinem Fall auf jeden Fall besser, als einen selbst gestrickten Bubblesort zu benutzen, der langsam ist. Jeden Datensatz bringst Du in einer Instanz einer selbst definierten Klasse unter, die neben den notwendigen Feldern für die Einträge noch einen Vergleichsoperator (kleiner "<") implementiert. Die Objekte fügst Du dann einem Vektor Container für Deine Klassen hinzu (STL) und sortiest diese dann mit sort.
  8. Die Gründe sind vielfältig, einen bestimmten Grund gibt es IMO nicht. Hier einmal mögliche Gründe, die mir spontan einfallen: Es gibt viel C++ Code, den niemand ersetzen will, aber weiter genutzt wird. Es haben relativ viele Entwickler mit C++ Erfahrung. Man kann mit C/C++ bei Bedarf auch hardwarenah Programmieren, was nicht in allen Programmiersprachen gleichermaßen möglich ist. Mit Visual C++ kann man immer den aktuellen PSDK nutzen und hat somit Zugriff auf alle aktuellen Features vom Windows SDK. C++ Compiler gibt es für viele Systeme, so dass Code ohne Betriebssystemabhängigkeiten portabel (nur erneute Kompilierung erforderlich) gestaltet werden kann.
  9. Keine Ahnung, aber ich würde nein sagen. Es ist viel Theorie, aber praktisch Programmieren muss man auch an der Uni (im Grundstudium sind es meist kleinere Aufgaben und Algorithmen, die umzusetzen sind). Wenn Du Dich nebenbei noch selbst mit der Programmierung beschäftigst, sollte es sicher reichen. Da Du aber schon Student bist, kannst Du Dich doch an Deiner Uni einfach im Sommersemester in ein paar Informatik-Vorlesungen (oder eine Imformatik- und eine Mathe-Vorlesung) hineinsetzen. (Vorausgesetzt, es wird Informatik angeboten.) Ob Du sofort einen Ausbildungsplatz bekämest, ist doch auch nicht sicher, und ich glaube Ausbildungsbeginn ist immer erst im Herbst? Sprich mit den Dozenten, ob Du erstmal auch unverbindlich (also ohne eine Prüfung anzupeilen) an den Vorlesungen/Übungen teilnehmen und bei Bestehen evtl. einen Übungsschein erwerben kannst. Wenn es Dir gefällt, kannst Du auch noch später wechseln. Wenn nicht, dann hast Du eben ein oder zwei Vorlesungen aus einem anderen Fachgebiet gehört, dass schadet nicht. Ich würde sogar jedem der Zeit hat empfehlen, sich freiwillig in ein paar interessante Vorlesungen reinzusetzen, die nicht zu seinem Kern-Fach gehören.
  10. Du solltest die relevanten Ausschnitte aus Deinem Programm posten, ohne weitere Informationen kann man zu Deinem Problem nur wenig sagen.
  11. Du brauchst dringend für Dich geeignete Bücher. Schau Dich am besten in einer Bücherei oder großen Buchhandlung um. Mit etwas Glück findest Du ein erstes für Dich geeignetes Buch. Ich weiß nicht, was man als Systemelektroniker lernt (bzw. können muss), aber die prinzipiellen Grundlagen der Digitaltechnik sind nicht wirklich schwer zu verstehen. Wie gut man es versteht, hängt natürlich mit davon ab, wie gut man es im Unterricht erklärt bekommt. Schaltungen aus Gattern wie NOR, NAND, AND, OR, Inverter, etc. sind recht schnell mit einem Simulator aufgebaut und ausprobiert. Suche mal im Web nach digitalen Schaltungssimulatoren, da gibt es einige. Mit den Simulatoren kann man auch gut zu Hause experimentieren. Abstrakter wird es erst dann, wenn man zu aufwendigeren Schaltungen und Themen, wie der Booleschen Algebra, Minimierung (KV-Diagramm), usw. übergeht. Gehört das auch zu Eurem Stoff?
  12. Das hängt mitunter vom Betriebssystem ab. C bietet die Funktionsgruppen exec (_exec) und spawn (_spawn) an. Wenn Du Windows verwendest solltest Du aber lieber ShellExecute verwenden, damit kannst Du auch gleich Dokumente, wie HTML Dateien, öffnen.
  13. Die Bitbreite der Anbindung an Speicher und die vorhandene Menge sind prinzipiell voneinander unabhängig, manchmal machen aber nur bestimmte Mindestbestückungen Sinn. Mir sind augenblicklich nur 6600GT Karten mit 128MB Speicher bekannt. Letzlich ist mir das aber egal, laut den Tests dürfte die Karte für meine Zwecke schnell genug sein und noch mehr Geld möchte ich eigentlich nicht mehr für eine AGP Grafikkarte ausgeben, da mein nächstes Mainbord vermutlich ohnehin PCIe haben wird.
  14. Bubble

    Sinuskurve in Konsole

    Wenn er die Aufgabe im 1. Post richtig wiedergegeben hat, hätte er sich die Grafik folglich spaaren können. Insbesondere, dass keine Objektorientierung verwendet werden soll sprach gegen Grafik, da für ein Fenster mindestens eine Objektinstanz gebraucht wird. Letzlich Haarspalterei und mir ist es sowieso egal.
  15. Also ich plane bei mir eine 6600GT einzubauen. Bisher verwende ich allerdings noch eine GeForce3, leider mit leicht defektem Ventilator. Im ct Test waren die beiden Karten von Gainward als geräuschlos im 2D-Betrieb angegeben, daher werde ich es voraussichtlich mal mit einer von Gainward versuchen. Ich frage mich nur, ob die extra Features (Lüfterreglung) der Karte auch mit den Treibern direkt von nVidia funktionieren.
  16. Warum nicht, wenn er mit geeigneten Algorithmen experimentieren möchte? Und ein komplettes Filesystem braucht er dafür auch nicht zu simulieren, eine starke Vereinfachung genügt.
  17. Natürlich nicht. Statdessen kannst Du aber Entwürfe zeichnen, wie es denn aussehen soll. Screenshots von dem, was Du tatsächlich programmiert hast, können erst in der Dokumentation vorkommen, die nach Fertigstellung der Programmierarbeit angefertigt wird. Wenn es Deine Abschlußarbeit ist und Du nur begrenzt Zeit hast, dann versuche aber, Dich zeitlich nicht zu übernehmen.
  18. Bubble

    Sinuskurve in Konsole

    @Perdi im Ausgangspost stand nichts von (x,y)-Koordinaten oder einer grafischen Ausgabe der Funktionskurve. Es war nur nach Funktionswerten in einem gegebenen Intervall gefragt. Die Aufgabe kann gemäß geposteter Aufgabenstellung als Liste mit Zahlen, die in der Konsole ausgegeben wird, vollständig umgesetzt werden. Also eine Ausgabe in der Art: sin(0) = 0 sin(0.1) = 0.099 sin(0.2) = 0.19 ... sin(PI/2) = 1 ... sin(PI) = 0 ... sin(3/2*PI) = -1 ... sin(2*PI) = 0
  19. Hast Du Spiele, die überhaupt mehr als 128MB Texturdaten verwenden? Brauchst Du die Texturen in höchster Qualität? Ist Dir Geschwindigkeit wichtiger? Letztlich alles Dinge, die Du nur mit Dir selbst und guten Benchmarks klären kannst Welche Grafikkarte willst Du Dir denn kaufen? Ich liebäugle im Moment mit einer GeForce 6600GT.
  20. Bubble

    Sinuskurve in Konsole

    Das könnte man noch verbessern. Es wär sinnvoller zu jeder x-Koordinate genau einen Sinus-Wert zu berechnen.
  21. Bubble

    Sinuskurve in Konsole

    Er könnte die Funktionswerte mit äquidistanter Schrittweite berechnen und ausgeben. Letzlich genau das gleiche, auch die Zahl an Pixeln ist endlich.
  22. Mir ist es jetzt etwas zu mühsam, den ganzen Thread erneut durchzulesen, aber wenn es noch immer um das Finden von Stellen in Textdateien geht, dann würde ich sagen, dass es sich bei dem Problem doch einfach nur um das Suchen von einem String in einem weiteren (der Datei) handelt. Dafür gibt es viele effiziente Algorithmen.
  23. Wenn Du beispielsweise ein Array von Bytes hast, kannst Du es auch mit Java komplett selbst verwalten, also auch belegte Bereiche defragmentieren. Wenn man nur das Prinzip erforschen möchte, reicht das vollkommen aus. Den "richtigen" Speicher kann man sowieso nicht wirklich defragmentieren, da es unmöglich ist existierende unbekannte Pointer umzuändern. Es gibt allerdings auch hier Ansätze zur Speicherverwaltung, bei denen statt Pointer Handels verwendet werden und man Speicherblöcke nur auf bestimmte Zeit "fixiert", um für diesen Zeitraum einen gültigen Pointer zu bekommen. Nicht fixierte Blöcke können dann jederzeit verschoben werden. Aber ich glaube, dass ist alles etwas off-topic
  24. Den Algorithmus kann man experimentell durchaus in Java umsetzen, ein Defragmentieren des Dateisystems mit Java dürfte hingegen sehr JNI lastig sein und sicher auch weiteren native code benötigen. Aber vielleicht will der Fargesteller auch ganz andere Dinge defragmentieren, etwa Speicherbereiche o.ä.
  25. Natürlich das Pflichtenheft, denn dort steht drin (sollte zumindest...), was beim Projekt herauskommen soll. Sinnvollerweise fertigt man das schon vor Vertragsabschluss an, damit es nachher nicht heißt "aber wir wollen doch noch dies und dann das..."

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...