Forum: Betriebssysteme
by himitsu,
11. Jun 2006
Schau mal auf die Dati: geschrieben 1993, Copyright 1998 Microsoft. Der Artikel bezieht sich auf Windows 3.1 und frühe NT-Systeme.
Das ist wohl auch der Grund, warum weiter vorne nachgewiesen wurde, daß jedem Prozess 64K für GDIs bereitgestellt wird.
Forum: Betriebssysteme
by himitsu,
5. Jun 2006
Der Explorer (Dateibrowser) braucht nur 120+ ... der Rest geht für Desktop, Taskleiste und Co. drauf.
Und zum Problem nochmal ... ich denk langsam es ist bestimmt eine Mischung aus mehreren Problemen.
Hab jetzt auch z.B. mal in weitere 16-Beschränung aufgefunden.
Es sind maximal 65536 String-Resourcen möglich (ResourceString).
Forum: Betriebssysteme
by himitsu,
3. Jun 2006
Also trifft man in Windows immernoch überall mal auf ein Word zur Speicherung ... das gute alte Win16 also :stupid:
Forum: Betriebssysteme
by himitsu,
2. Jun 2006
ich kann's hier ja nicht testen ... aber laßt das Programm doch mehrmal starten ... bei genug Programmen sollte man dann doch die gesamtGrenze finden ^^
(würd's mir ja och gern runterladen und morgen früh testen, aber geht hier nicht :( )
Forum: Betriebssysteme
by himitsu,
2. Jun 2006
also 10.000 minus die paar vom Programm erstellten GIDs (welche wohl immer gleich sind) ^^
Forum: Betriebssysteme
by himitsu,
2. Jun 2006
"Normale" Anwendugen greifen ja nicht selber/direkt auf die GraKa zu ... da sollte der Speicher in der GraKa eigentlich immer gleich hoch sein.
Ein virtuelles Bild des Desktops, wo nur von jeder Anwendung das sichbare drin ist und das gelangt erst in die Karte (oder irgendwie so ._.)
Forum: Betriebssysteme
by himitsu,
1. Jun 2006
Hab gerade mal geguckt, aber ein ExplorerFenstere braucht nur etwa 11 MB und knapp 120 GDIs ... 's geht also noch (von den GDIs her)
Man darf ja nicht vergessen, das die Explorer.exe für mehr als nur das eine Fenster zuständig ist ... die kümmert sich ja unter anderem noch um den Desktop und die Startleiste.
Wie kann es das einfach so machen ... was wäre, wenn man wirklich soviele braucht...
Forum: Betriebssysteme
by himitsu,
31. Mai 2006
na ja, zwischen sollen und sein ist ja immer 'ne große Lücke, :roll:
aber es ist nunmal etwas auffällig ... 64K - ein paar Bytes für was anders = die anscheinende Grenze.
Am Ende kann es auch ganz einfach nur eine falsche Konstante sein ...
sozusagen Begrenzeung behoben, aber die MaxGDIObjects-Konstante steht noch auf dem Wert.
M$ wird sich ja noch umgucken, wenn wenn irgendwann sehr viel...
Forum: Betriebssysteme
by himitsu,
31. Mai 2006
(64 * 1024) / 4 = 16384
Windows hat den Speicher in 64-KB-Blöcke aufgeteilt, man muß also immer in 64-KB-Blöcken den Speicher reservieren.
Also bei einem statischns Array of Pointer für die zu verwaltenden Objekte wäre, wenn nur ein Speicherblock reserviert wird und sich nichts an der Reservierung ändern läßt, auf 16384 Objekte beschränkt ... 's wäre och ma 'ne Erklärung :roll:
Forum: Betriebssysteme
by himitsu,
31. Mai 2006
die Gesamtzahl?
Na ja, da ihr doch die Probleme damit habt und wenn es wirklich damit zusammenhängt, dann zählt doch mal nach ;)
wenn es sich bei maximal 65000 einpendelt ... wird's wohl noch ein 16-Bit-Überbleibsel handeln (ich glaub Timer kann man auch nur maximal 65xxx erstellen, da die TimerID anscheinend ein WORD ist)
Erweitern?
Klarr ... man müßte (wenn es sich z.B. um ein Word für...
Forum: Betriebssysteme
by himitsu,
31. Mai 2006
Hast du mal gezählt, aus wievielen Objekten(Windows) so ein Explorer besteht? ... das sind tausende ... dann ist die rechte Seite ein Internet Explorer (die Dateiliste und dieses WebAnsichtTeil sind Webseiten, da kommt och noch mal was zusammen) ... das sammelt sich halt ... Windows heißt ja nicht umsonst Windows (alles kleine Fenster ^^)