
Crush
Mitglieder-
Gesamte Inhalte
2048 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Alle Inhalte von Crush
-
Sorry, wollte noch korrigieren: Nicht jeder Compiler braucht sein Süppchen ... sondern braut es natürlich =8-)
-
@Danarama Vielleicht habe ich mich nicht so doll ausgedrückt, weil ich ja was anderes damit gar nicht sagen wollte als das was Du geschrieben hast, Ich stimme also einfach zu ca. 99% mit ein wie Du´s sagst, weil: Auch der Stack wird nur in vorhandemem Speicher vom System reserviert - und da kann jederzeit was anderes vorher dringestanden haben - auch wenn´s schon lange her ist. Das mit den Lokalen Variablen ist klar, die kommen meist auf dem Stack. Es sei denn der Compiler macht Fastcalls oder automatische, bzw. erzwungene Register-Optimierung oder gar Inline-Calls, dann wird nämlich alles direkt in den Prozessorregistern überreicht und der Stack außen vor gelassen (bis auf den Einsprungs-Instruction-Pointer), bzw. teils gar kein echter Funktionsaufruf gemacht - auch wenn man scheinbar (laut Source) eine Funktion "aufruft" - weil ja bei Inline-Funktionen Kopien der Funktion direkt ins Programm eingefügt werden und damit jeglicher Aufruf überflüssig wird. Ich wollte nur etwas "technisch" aufklären, wobei Gaius´ Erklärung den Nagel direkt auf den Kopf trifft. Klingt auch irgendwie logisch, daß nirgendwo etwas Bestimmtes zu stehen hat, solange ich nicht klar sage was wo stehen soll. @GaiusUlius Ich schreibe natürlich alles aus meiner Windows-Sicht, weil ich die einfach am besten kenne. Dabei gehe ich einfach mal davon aus, daß halt bei X86-Prozessoren das ganze so abläuft. Funktionsaufrufe sind aber bis heute noch nirgends standardisiert und daher kann das sehr wohl schon beim selben Betriebssystem vollkommen anders aussehen: Pascal, Basic, diverse C-Konventionen und fast jeder Sprach-Compiler braucht bei Funktionsaufrufen gerne sein eigenes Süppchen. Kommt also nicht nur drauf an wer aufruft, sondern auch was aufgerufen wird (in welcher Programmiersprache dasjenige Welche erstellt wurde). Der Prozessor selbst allerdings trägt auch noch einen großen Teil dazu bei, weil zwar elemantar solche Abläufe ähnlich sind, aber die Stack-Verwendung ganz anders organisiert sein kann. Mit Enter- & Leave kann man ja Stacks direkt selbst aufbauen und so stört sich dann niemand mehr - davon machen aber C-Compiler relativ selten Gebrauch - höchstens bei neuen Prozessen oder Threads - das würde aber jetzt zu weit führen. So viele Variablen spielen bei Speicheraufbau und Aufrufkonventionen eine Rolle, daß es schon fast ein Wunder ist, daß alles "irgendwie" miteinander läuft.
-
Ausprobiert nicht, allerdings soll in der Geschwindigkeit nur 1-2 Prozentpunkte gegenüber DX8 drin sein. Lies mal die Links: Es geht vor allem darum mit DirectX neue Grafik-Effekte zu unterstützen. Ich glaube eh, daß sich in Punkto Geschwindigkeit durch Treiberoptimierung nicht mehr allzu viel bewegen wird. Es ist viel einfacher die Hardwareleistung einfach hochzuschrauben als noch ein wenig an den Routinen optimieren zu wollen, die nach so vielen Versionen schon wohl knapp am Machbaren dran sein werden.
-
Für gefälschte "Schwalben" und böse Fouls soll´s ja jetzt saftige Geldbußen geben. Da bin ich gespannt, wer wieviel löhnen muß.
-
Vermutlich meintest Du Teamsound. Ich finde, daß das besser ist als Battlecom, aber ist auch Gewohnheitssache. Eigentlich sollte davon auch bald eine neue Version erscheinen, jedenfalls im Teamsound-Forum wird ständig davon gesprochen. Vor allem das Battlefield-Sequencing finde ich prima.
-
"Wieso gibt er 1 und 256 aus? Die Variable ist doch normalerweise nicht gesetzt." Irgendwas muß er ja ausgeben, wenn Du eine Variable abfrägst, egal ob sie gesetzt ist oder nicht. *** VS setzt im Debug-Modus z.B. vor und nach allozierten Variablen und Objekten digitale Signaturen, um Bereichsüberschreitungen und Memory-Leaks erschnüffeln zu können. Auch diese Signaturen können dann u.U ohne Initialisierungen plötzlich drin stehen (jedenfalls häufig bei Zeigervariablen und fehlerhaftem Code). Innerhalb von Funktionen wird alles auf dem Stack abgelegt. Dieser wird jedoch pausenlos vom gesamten Thread benutzt. Da kann es auch sein, daß man mal "Müll" von vorher ausliest, wenn die Variable dort plötzlich angelegt wird. "Sobald aber die Variable global und nicht innerhalb eines Funktionsblockes gesetzt wird ist sie = 0." Globale Variablen werden nicht während der Programmlaufzeit und vom Programm selbst initialisiert, sondern vom Programm-Lader, der lediglich weiß, daß halt eine Variable im Programm verwendet wird und wie groß sie ist. In Wahrheit steht da aber keine Variable, sondern die Positionen der Befehle, die die Variable benutzen, welche er - nachdem er die Variable im Heap reserviert hat - mit der Adresse der Variable initialisiert. Die Variable selbst wird nicht mit Werten versehen und kann daher alles mögliche beinhalten! An der Position wo der Variable Speicher zugewiesen wird (also noch bevor das Programm überhaupt gestartet wird!) kann also sehr wohl auch noch Müll von ehemaligen Vorprogrammen oder auch einfach vom Bios-Speichertest stehen. Die Einzige Ausnahme sind im (Resource)Daten-Segment, welches tatsächlich Inhalte, also Initialisierungen hat. Das ist auch der Grund, warum man statische Elemente in Klassen auch immer nochmal direkt initialisieren muß - alle Objekte der Klasse müssen da schließlich auf dieselbe Position im Speicher zugreifen. Diese Elemente werden genauso wie die globalen Variablen im rData-Segment vom Programm abgelegt, welche immer Initialisierungen beinhalten!
-
MFC: Buttons mehrzeilig beschriften
Crush antwortete auf TinTin's Thema in C++: Compiler, IDEs, APIs
Kein Problem: Bei den Eigenschaften des Buttons muß halt bei Formate erst mal Mehrzeilig ausgewählt sein, damit es überhaupt klappt. Danach einfach beim Titel als Zeilenumbruch \n eintippen. Das Referenz-Zeichen ist übrigens nur für den Shortcut da. Beispiel: "&Zeile1 \n2. Zeile" -
Bei mir waren´s 8 und die Zeit war dafür schon ziemlich knapp. Wichtig ist nur: Nicht zuviel zeichnen, schreiben, etc. nur soviel, wie man auch in 30 Sek. optisch erfassen kann, da man ja auch noch Dir zuhören können soll. Ist zuviel zum Lesen hört keiner mehr zu - ist zuviel geredet, liest man evtl. nicht mehr mit.
-
DirectX - Programmierung (Tutorials, Bücher,etc)
Crush antwortete auf sandman's Thema in C++: Compiler, IDEs, APIs
Vom letzten Link habe ich ja das lustige Zitat her... so klein ist die Welt. -
Einfach auf die Seite gehen, rechte Maustaste drücken und "Alles mit Flashget laden" auswählen. dann auf Filter-Auswahl gehen und alle Datei-Typen oder unten Alles auswählen -> ok drücken. Lädt alles komplett downloadbare direkt von der aktuellen Seite. Oder zur Dateilauswahl: Rechts unten in der Tool-Leiste erscheint das Rote Bildchen von Flashget. Mit der Maus drüberfahren und die rechte Maustaste drücken-> "Drag&Drop Ziel anzeigen" auswählen (linke Maustaste). Dann kann man im Text mit gedrückter Shift, Alt oder Strg-Taste den Bereich der Dateien auswählen, welche abgecheckt werden sollen. In den markierten Bereich fahren, die linke Maustaste drücken, gedrückt halten und auf das Flashget-Drop-Fenster gehen und loslassen-> ansonsten das gleiche wie oben.
-
DirectX - Programmierung (Tutorials, Bücher,etc)
Crush antwortete auf sandman's Thema in C++: Compiler, IDEs, APIs
Ich finde das Tutorial eigentlich ganz gut, vom Anspruch her ist es eigentlich eher "oberer Durchschnitt". Einen evtl. recht einfachen Einstieg kann man noch im Buch Computerspiele - Design & Programmierung bekommen. Ich jedenfalls habe weitaus schwierigere Tutorials & Bücher hier und ich glaube man darf da einfach nicht so schnell aufgeben. Wenn´s sein muß 2-3 mal durchlesen, dann irgendwann kommt schon der Aha-Effekt und der Vorhang fällt. Leider ist die Grafik- & Spiele-Programmierung alles andere als einfach und wird von vielen oft schwer unterschätzt. Da steckt eine Menge Arbeit dahinter, damit man etwas auf die Beine gestellt bekommt. Halbwegs Sicherheit mit der erforderlichen Programmiersprache ist Grundvoraussetzung dazu. Also gibt einfach nicht auf und lies das ganze lieber nochmal. Ich finde das Tut sehr ordentlich im Vergleich zu manch Anderen. Gute Anlaufstellen sind noch: CFXWeb CodersGer DirectX Grafics net Programmersheaven Codeguru Eine gute Linksammlung Und dort vielleicht noch die Links einfach mal weiterverfolgen... -
Ist mein Lieblings-Downloader. Da gibt´s nur 2 wirklich wichtige Funktionen: F4 um von Hand direkt Downloads zuzufügen & F7 um Sites oder FTPs zu durchstöbern. Ansonsten ist alles selbsterklärend mit Strg+Alt+O und auch mit Alt+O zu verändern. Achso: Mit F1 kommt noch eine super Hilfe. Wichtig ist noch die Browser-Überwachung bei den Funktionen, weil man dann direkt mit Alt-Taste und Mouse Links in den Download-Cache ziehen kann. Beim Mirror-Server kann man sich noch Dubletten suchen lassen und höchstens noch der Zeitplaner ist wichtig, falls man mal zu bestimmten Zeiten downloads machen lassen will. Beim Datei-Manager kann man sich raussuchen, in welche Kategorie jeweils die Downloads verschoben werden sollen (die schmale Liste links) und wie Flashget auf schon vorhandene Dateien gleichen Namens reagieren soll. Bei Str+Alt+O kann man den Standard-Download-Ordner auswählen und bis zu 10 Download-Streams pro Datei parallel laufen lassen, welche bei Alt+O bei Verbindung auf maximal 8 Dateien gleichzeitig eingeschaltet werden können, wodurch auch bei viel Netzverkehr gute Downloadraten erreicht werden können. Mehr braucht man da eigentlich nicht zu wissen.
-
Das erste DirectX9-SDK beta ist schon draußen ... da werden Funktionen unterstützt, die großteils erst noch in Blei gegossen werden müssen: Bericht, Bericht2 & Download. Aber !!!Vorsicht!!! mit der Installation: Es existiert noch keine Deinstallation dazu! DriveImage oder sonstige Backup-Software wäre also empfehlenswert!
-
@at-b: Vor dem Schreiben erst mal LESEN! Vor allem, wenn´s nicht soviel ist wie hier. Den Teil hatten wir doch schon.
-
Ob Corinna wirklich blind ist ... da bin ich mir nicht mehr so sicher. Gestern beim Raab hat sie irgendwas in der Art gesagt, daß sie etwas nicht beurteilen kann, weil sie es noch nicht "gesehen" hat. Sie muß sich das erst selber "anschauen"?!?!?!?!
-
Gehalts Statistik in der IX und c´t..
Crush antwortete auf gicio's Thema in Ausbildung im IT-Bereich
Mir hat erst gestern mal wieder einer der auf der Uni im 2. Jahr lernt erzählt, daß von 30 Leuten aus seiner Klasse nur 4 überhaupt programmieren können - der Rest macht nur so als könnten sie es. Ergebnis: Eine Menge Fachidioten mit Diplom, die evtl. ein paar Formeln lösen können, aber eigentlich nachher praktisch zu (fast) nix nützen. Ich möchte ja niemand angreifen und gehe mal davon aus, daß die Jungs hier im Forum zu denen meist zählen, die sich wirklich anstrengen. Das Verhältnis entspricht auch ungefähr unserem ehemaligen Klassenschnitt an Leuten, die tatsächlich programmieren konnten ... als Anwendungsentwickler ... ist also auch für Fachinformatiker realistisch. Der Einstieg liegt derzeit bei ca. 32-36000 Euro für Fachinformatiker. Wer noch 40k bekommt hat viel Glück. -
Mir persönlich scheint der Radix-Sort am schnellsten zu sein, sofern die Datenmenge und der Sortierbereich entsprechend begrenzt ist.
-
Bisher dachte ich, daß irgendwie alles auf eine Art knackbar ist. Ich habe vergangenes Jahr allerdings mal von einem Physiker gelesen, daß der einzige Kopier und Verschlüsselungsschutz, der tatsächlich 100% unknackbar ist ein Quanteneffekt-Codierer ist, den natürlich er entworfen hat (die Begründung dafür klang irgendwie plausibel). Die Technik existiert schon im Versuchslabor und wird wohl voraussichtlich die nächsten 100 Jahre nur vom US-Militär für Hochbrisantes wie den Roten Knopf im weißen Haus verwendet werden.
-
Ich habe irgendwo mal gelesen, daß der Junge mit seinem Jugend-Forscht-Projekt von IBM aufgekauft wurde. Da wird man sicherlich noch irgendwann etwas davon hören.
-
Ich finde Kürzungen aller Art schlecht. Gestern habe ich mir Cannibal Holocaust und die Geisterstadt der Zombies angeschaut - da geht wenigstens was ab und man bekommt was fürs Geld. Der Film war ohnehin stinklangweilig - da hätten die paar Schweinewörter nix gebracht.
-
Ich bin auch dafür lieber die Sklavinnen vom "Prügelmeister" mal eine Chance zu geben. Nicht umsonst wird er so vom Raab verehrt - der hat Ahnung was die Leute bewegt - und setzt seine Interessen mit harter Hand durch. =8-)
-
Buttonabfrage ohne Click 2ter Teil
Crush antwortete auf Babybaer's Thema in C++: Compiler, IDEs, APIs
Man kann aber auch die Message-Queue selber filtern, indem man im public: der Klasse vom Dialog virtual BOOL PreTranslateMessage(MSG* pMsg); und in der .cpp BOOL CTest8Dlg::PreTranslateMessage(MSG* pMsg) { MSG mymsg=*pMsg; if (mymsg.message==WM_MOUSEMOVE) { int dlgID=WindowFromPoint(mymsg.pt)->GetDlgCtrlID(); TRACE("%d %d %d\n",dlgID,mymsg.pt.x,mymsg.pt.y); } return CDialog::PreTranslateMessage(pMsg); } Den Trace sieht man dann in der Aufrufliste vom Debugger (mach ich halt gerne so) Das schöne ist, man kann alle Messages vom Dialog abfangen, filtern und dann alles damit anstellen (ähnlich wie einen MessageProc Hook). -
Universal Mobile Telecommunication Standard. Etwas anderes habe ich nicht gefunden - ist vielleicht nur ein Gerücht. Allerdings sollte man gleichzeitig mit UMTS auf jeden Fall das hier erwähnen. Daran zeigt sich nämlich, daß in der Wirtschaft nur das Geld zählt - nicht die Wirtschaftlichkeit.
-
... oder Schnittfläche =8-) eigentlich genau so ein Beispiel war im Borland C++-Builder-Buch drin: für ein Malprogramm. Aber man lernt nur, wenn man´s selber ausprobiert und erst dann postet, wenn was nicht klappt.
-
http://mitglied.lycos.de/perscheid/lucgames.htm Das erste seiner Art war nicht ZakMcKracken, sondern Maniac Mansion auf dem C64. Es gab aber einen inoffiziellen Vorgänger und Wegbereiter, welches dem nur ein kleines wenig hinterher hinkte (war aber super): Das Labyrinth - das Spiel zum Film. Wem Zak & MM gefällt, der kann auch ruhig mal auf dieses allerallererste Lucasarts (Maniac-Mansion-Style teils 3D) Action-Adventure ein Auge werfen - läuft mit jedem C64-Emulator. Auf der E3 und der Homepage www.lucasarts.com ist übrigens schon VollgasII angekündigt worden. ...und auch Simon The Sorcerer 4 ist geplant.