<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Speichermangel bei mehr als 5000 BMPs!!]]></title><description><![CDATA[<p>Hallo zusammen,<br />
hier hab ich mal 'ne harte Nuß! Ich habe ein Programm geschrieben, mit dem man einen Font erzeugen (kein TrueType) kann und die Pixel der Zeichen des Fonts bearbeiten kann. Den kompletten Font habe ich in einer extra View mit Hilfe von GDI Bitmaps für jedes Zeichen als Liste dargestellt (CObList). Ein Font hatte bisher max 256 Zeichen (ASCII) und somit 256 Bitmaps, die ich auf den Heap gelegt habe.</p>
<p>Soweit so gut. Nun soll ich auf Unicode umstellen, damit asiatische Zeichen auch in die Fonts aufgenommen werden können. Da dies aber bedeutet, daß ich nunmehr mehrere tausend Zeichen aufnehmen können muß, benötige ich entsprechend viele Bitmaps. Doch ab 4900 Bitmaps ist schluß!!!</p>
<p>Ich hab schon mehrere Ansätze versucht, um dieses Problem zu umgehen. Beispielsweise habe ich versucht, nur soviele Bitmaps zu erzeugen, wie auch tatsächlich angezeigt werden und diese dann zu verschieben und dynamisch mit dem entsprechenden Inhalt zu füllen, je nachdem wohin ich scrolle. Aber einerseits ist die Verwaltung extrem kompliziert (aber möglich) und andererseits scheitert diese Lösung aus Performance Gründen aus, da das dynamische Füllen während dem scrollen zu lange dauert. Auch diverse Paging Techniken habe ich ausprobiert (immer nur ganze Blöcke werden beim Scrollen geladen), aber auch das scheitert an der Performance.</p>
<p><strong>Jetzt weiß ich nicht mehr weiter!!!</strong> Gibt es eine Möglichkeit, mit der Auslagerungsdatei zu arbeiten? Oder hat jemand eine andere Idee, wie ich dieses Problem lösen könnte?</p>
<p>Für eure Ideen bedanke ich mich jetzt schon herzlich!!</p>
<p>Viele Grüße<br />
RG_Basser</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/43501/speichermangel-bei-mehr-als-5000-bmps</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 21:01:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/43501.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 22 Jul 2003 15:34:27 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Tue, 22 Jul 2003 15:34:27 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
hier hab ich mal 'ne harte Nuß! Ich habe ein Programm geschrieben, mit dem man einen Font erzeugen (kein TrueType) kann und die Pixel der Zeichen des Fonts bearbeiten kann. Den kompletten Font habe ich in einer extra View mit Hilfe von GDI Bitmaps für jedes Zeichen als Liste dargestellt (CObList). Ein Font hatte bisher max 256 Zeichen (ASCII) und somit 256 Bitmaps, die ich auf den Heap gelegt habe.</p>
<p>Soweit so gut. Nun soll ich auf Unicode umstellen, damit asiatische Zeichen auch in die Fonts aufgenommen werden können. Da dies aber bedeutet, daß ich nunmehr mehrere tausend Zeichen aufnehmen können muß, benötige ich entsprechend viele Bitmaps. Doch ab 4900 Bitmaps ist schluß!!!</p>
<p>Ich hab schon mehrere Ansätze versucht, um dieses Problem zu umgehen. Beispielsweise habe ich versucht, nur soviele Bitmaps zu erzeugen, wie auch tatsächlich angezeigt werden und diese dann zu verschieben und dynamisch mit dem entsprechenden Inhalt zu füllen, je nachdem wohin ich scrolle. Aber einerseits ist die Verwaltung extrem kompliziert (aber möglich) und andererseits scheitert diese Lösung aus Performance Gründen aus, da das dynamische Füllen während dem scrollen zu lange dauert. Auch diverse Paging Techniken habe ich ausprobiert (immer nur ganze Blöcke werden beim Scrollen geladen), aber auch das scheitert an der Performance.</p>
<p><strong>Jetzt weiß ich nicht mehr weiter!!!</strong> Gibt es eine Möglichkeit, mit der Auslagerungsdatei zu arbeiten? Oder hat jemand eine andere Idee, wie ich dieses Problem lösen könnte?</p>
<p>Für eure Ideen bedanke ich mich jetzt schon herzlich!!</p>
<p>Viele Grüße<br />
RG_Basser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/314904</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/314904</guid><dc:creator><![CDATA[rg_Basser]]></dc:creator><pubDate>Tue, 22 Jul 2003 15:34:27 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Tue, 22 Jul 2003 20:34:03 GMT]]></title><description><![CDATA[<p>Wie gross ist ein Bild?<br />
Braucht du True Color?</p>
<p>Ich komme bei einem .bmp File mit 300<em>300 sw Pixeln auf 12062 Byte<br />
und somit bei 65536 Bildern auf 754 MB<br />
bei 200</em>200 auf 354 MB</p>
<p>Die Zahl der Bilder berechnete ich als absolute Maximalzahl für Unicode</p>
<p>Mein Verdacht ist das du dein RAM und deine Auslagerungsdatei überforderst und deshalb der Fehler kommt</p>
<p>Hoffentlich habe ich Recht</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/315105</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315105</guid><dc:creator><![CDATA[PAD_]]></dc:creator><pubDate>Tue, 22 Jul 2003 20:34:03 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Tue, 22 Jul 2003 21:19:48 GMT]]></title><description><![CDATA[<p>Ändere das Design deiner Anwendung. Niemand will sich durch 50000 Bitmaps scrollen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315132</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 22 Jul 2003 21:19:48 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 05:34:14 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22731">@Unregistrierter</a><br />
Recht hast du.</p>
<p>Auf der anderen Seite hilft es ihm wahrscheinlich die Fehler in seine Konzepten zu erkennen und erst den Memoryverbrauch zu planen bevor man ans kodieren geht.</p>
<p>Vergleichbare Probleme können auch bei 100 Bildern auftreten wenn sie Entsprechend groß sind.</p>
<p>Was muss man tun wenn die Applikation nicht nur auf einem Superrechener<br />
mit 1GB RAM und 2GB Auslagerungsdatei sondern auch mit 128 MB und 256 MB Auslagerungsdatei laufen soll.</p>
<p>PaintshopPro hat mich auch schonmal mit ähnlichem beglückt allerdings bei 3 gescannten Bildern (900 DPI)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315272</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315272</guid><dc:creator><![CDATA[PAD]]></dc:creator><pubDate>Wed, 23 Jul 2003 05:34:14 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 07:36:13 GMT]]></title><description><![CDATA[<p>Hmmm - also keine Schriftart die du mit TextOut ausgeben könntest?</p>
<p>Du könntest die Bitmaps komprimiert speichern, z.B. als PNG. Oder in einem zip Format. Mit zip sparst du über 90% an Speicher. Mit der Performance sollte das dann auch noch klappen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315328</guid><dc:creator><![CDATA[Oliver]]></dc:creator><pubDate>Wed, 23 Jul 2003 07:36:13 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 07:51:51 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3235">@PAD</a><br />
Zu deiner ersten Frage: Ich verwende 50x90 Pixel große CBitmaps (sw) und ich bestätige deinen Verdacht, insofern der Heap bei der 4900er Grenze voll ist.</p>
<p>PAD schrieb:</p>
<blockquote>
<p>Auf der anderen Seite hilft es ihm wahrscheinlich die Fehler in seine Konzepten zu erkennen und erst den Memoryverbrauch zu planen bevor man ans kodieren geht.</p>
</blockquote>
<p>Prinzipiell hast du hierzu völlig recht, doch leider ist zwischen der ursprünglichen Vorgabe von 255 Zeichen bei ASCII und über 4 Millionen (2³²) Zeichen bei UNICODE ein himmelweiter Unterschied, den ich nun wirklich nicht vorhersehen konnte. Und selbst wenn ich diesen Umstand berücksichtigt hätte, wüßte ich immer noch nicht, wie ich dieses Problem lösen soll. Genau deshalb hatte ich ja gehofft, hier auf die eine oder andere Idee zu kommen! Geändert ist meine Anwendung schnell, denn gottseidank habe ich vorausgeplant und eine Änderung wäre also durchaus noch möglich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /> Jedenfalls trotzdem Danke für deine Mühe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22731">@Unregistrierter</a></p>
<p>Anonymous schrieb:</p>
<blockquote>
<p>... Niemand will sich durch 50000 Bitmaps scrollen.</p>
</blockquote>
<p>Wer sagt, daß sich niemand durch 50000 Bilder scrollen will, wenn genau das eine Vorgabe ist? Und wenn schon eine so konkrete Antwort wie</p>
<p>Anonymous schrieb:</p>
<blockquote>
<p>Ändere das Design deiner Anwendung..</p>
</blockquote>
<p>, dann hast du bestimmt auch eine Idee wie?! Aber warum antworte ich eigentlich jemandem unregistrierten???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315334</guid><dc:creator><![CDATA[rg_Basser]]></dc:creator><pubDate>Wed, 23 Jul 2003 07:51:51 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 08:10:39 GMT]]></title><description><![CDATA[<p>Man könnte doch ein grosses Bitmap anlegen. Selbst, wenn alle Zeichen des UNICODE-Zeichensatzes (2^16) belegt sind, was wohl so gut wie nie der Fall sein wird, wäre das Bitmap nach meiner Rechnung (50*90*65535/8) gerade mal 36MB gross, was für diese Anzahl Zeichen IMHO durchaus zu verkraften ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315346</guid><dc:creator><![CDATA[RenéG]]></dc:creator><pubDate>Wed, 23 Jul 2003 08:10:39 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 08:13:43 GMT]]></title><description><![CDATA[<p>Bei der größe der Bitmaps 782 Bytes und 65536 unterschiedlichen Bitmaps ergibt<br />
sich ein Speicherbedarf von 48MB.</p>
<p>Wenn es sich um Chinesische Zeichensätze handelt, so ist der grundwortschatz ca 30000 Zeichen und bei hoher Bildung um die 10.000 Zeichen.<br />
Somit würde ich von 16.000 Bildern ausgehen mit 12 MB Speicherplatz.</p>
<p>Wenn da der Heap platzt gibt es glaube ich Möglichkeiten entweder den Heap zu vergrößeren oder aber einen prvaten Heap anzulegen<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich habe selbst keine Erfahrung damit aber schaue in der Hilfe (/MSDN) nach<br />
unter</p>
<p>Platform SDK: Memory Management<br />
Virtual Memory Functions</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/27a1.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--right_arrow"
      title=":arrow_right:"
      alt="➡"
    /> Hier eine Auschnitt aus &quot;Managing Heap Memory in Win32&quot;<br />
zu finden in VC Hilfe such nach den Stück in '&quot;'</p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/26a0.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--warning"
      title=":warning:"
      alt="⚠"
    /> Managing the Default Heap</p>
<p>Both default and dynamic heaps have a specific amount of reserved and committed memory regions associated with them, but they behave differently with respect to these limits. The default heap's reserved and committed memory region sizes are designated when the application is linked. Each application carries this information about itself within its executable image information. You can view this information by dumping header information for the executable image. For example, type the following command at a Windows NT command prompt (PWALK.EXE is used here to complete the example; you will need to substitute your own path and executable file):</p>
<p>link32 -dump -headers d:\samples\walker\pwalk.exe</p>
<p>...<br />
OPTIONAL HEADER VALUES<br />
10B magic #<br />
2.29 linker version<br />
B000 size of code<br />
1E800 size of initialized data<br />
600 size of uninitialized data<br />
18470 address of entry point<br />
10000 base of code<br />
20000 base of data<br />
----- new -----<br />
400000 image base<br />
10000 section alignment<br />
200 file alignment<br />
2 subsystem (Windows GUI)<br />
0.B operating system version<br />
1.0 image version<br />
3.A subsystem version<br />
C0000 size of image<br />
400 size of headers<br />
0 checksum<br />
10000 size of stack reserve<br />
1000 size of stack commit<br />
10000 size of heap reserve<br />
1000 size of heap commit<br />
...</p>
<p>The last two entries are hexadecimal values specifying the amount of reserved and committed space initially needed by the application.</p>
<p>There are two ways to tell the linker what to use for these values. You can link your application with a module definition file and include a statement in the file like the following:</p>
<p>HEAPSIZE 0x10000 0x1000</p>
<p>Or you can directly inform the linker by using the /HEAP linker switch, as in:</p>
<p>/HEAP: 0x10000, 0x1000</p>
<p>In both examples, the heap is specified to initially have 0x10000 (64K) bytes reserved address space and 0x1000 (4K) bytes committed memory. If you fail to indicate the heap size in either method, the linker uses the default values of 0x100000 (1 MB) reserved address space and 0x1000 (4K) committed memory.</p>
<p>The linker accepts almost any value for heap reserve space, because the application loader ensures that the application will meet certain minimum requirements during the load process. In other words, you can link an application with an initial heap value of 1 page reserved address space. The linker doesn't perform any data validation; it simply marks the executable with the given value. Yet, since the minimum range of address space that can be reserved is 16 pages (64K), the loader compensates by reserving 16 pages for the application heap at load time.</p>
<p>As indicated above, options exist that indicate how much memory should initially be committed for an application's default heap. The problem is they don't seem to work yet. The linker for the second beta release of Windows NT marks all executable applications with 0x1000 (4K) initial committed memory for the default heap size, regardless of the value indicated as an option. Yet this is not that big a deal because it actually may be better for an application to commit as it needs to, rather than to commit memory that is not being used.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315351</guid><dc:creator><![CDATA[PAD]]></dc:creator><pubDate>Wed, 23 Jul 2003 08:13:43 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 08:26:54 GMT]]></title><description><![CDATA[<p>Ach ja stimmt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Ich bin ja von Farb Bitmaps ausgegangen - man braucht ja nur schwarz/weiss. Gut dann brauch man nicht komprimieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315357</guid><dc:creator><![CDATA[Oliver]]></dc:creator><pubDate>Wed, 23 Jul 2003 08:26:54 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 09:12:28 GMT]]></title><description><![CDATA[<p>@All<br />
Erstmal Danke für eure Ideen. Ich denke, da ist der eine oder andere Ansatz dabei, mit dem ich evtl. was anfangen kann <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/638">@RenéG</a><br />
Die Idee mit dem großen Bitmap ist nicht schlecht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> Da ich die Bitmaps jedoch im Heap halte, sind glaube ich 36 MB (oder 48, wie Pad geschrieben hat) doch etwas zu viel, oder nicht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wenn ich jedoch eine Anpassung des Heaps vornehme, wie Pad vorgeschlagen hat, könnte es evtl funktionieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3235">@PAD</a><br />
Vielen herzlichen Dank für den Hinweis mit dem Heap und die entsprechende Quelle, das hilft mir wirklich sehr <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich werd jetzt mal ein weilchen die Quellen lesen und schauen, was dabei rauskommt. Wenn's was neues gibt (in Bezug meines Problems), melde ich mich wieder <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>P.S. Wie bekommt ihr eigentlich die Größen der Bitmaps? Errechnet oder ausprobiert?</p>
<p>Gruß<br />
RG_Basser</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315390</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315390</guid><dc:creator><![CDATA[rg_Basser]]></dc:creator><pubDate>Wed, 23 Jul 2003 09:12:28 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 09:38:47 GMT]]></title><description><![CDATA[<p>:p Bin stinkfaul, habe mit psp eine Bitmap der Größe in S/W angelegt, gespeichert Die Grösse mit dem Totalcommander angeschaut und dann mit Anzahl der Bilder multipliziert. :p</p>
<p>Wäre am Ergebnis der Heap Sachen interessiert, irgendwie habe ich das Gefühl in der nächsten Zeit wir mich da auch was ärgern. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/315414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315414</guid><dc:creator><![CDATA[PAD]]></dc:creator><pubDate>Wed, 23 Jul 2003 09:38:47 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 11:32:12 GMT]]></title><description><![CDATA[<blockquote>
<p>Wer sagt, daß sich niemand durch 50000 Bilder scrollen will, wenn genau das eine Vorgabe ist? Und wenn schon eine so konkrete Antwort wie Anonymous schrieb:<br />
Ändere das Design deiner Anwendung..<br />
, dann hast du bestimmt auch eine Idee wie?! Aber warum antworte ich eigentlich jemandem unregistrierten???</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Mal ehrlich, wer durch 50000 Eintraege Scrollen will, soll bestraft werden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> durch ladezeiten beim scrollen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
<p>Wie speicherst du deine Bitmaps, liegen die wirklich als BMP in nem Verzeichniss, oder in ner DB ?</p>
<p>Bzw wie bekommst die Zurdnung hin ? Zeichen -&gt; Bitmap ...</p>
<p>Ansatz ist je nach den gegebenheiten unterschiedlich ...</p>
<p>Scrollen ? Du meinst, DU hast ne Listbox aehnliches auswahlfeld ? wo der benutzer den zeichencode und die Bitmap sieht ....</p>
<p>Oder du Hast nen dialog wo der nutzer nur den zeichencode eingibt und das zeichen wird daraufhin dargestellt ?</p>
<p>Oder Gar ne Datei aus Zeichencodes (TextDatei) die auf nen GDI per bitmaps mit deinen Fonts dargestellt werden soll ? (ist eigentlich der Sinn von so Font Sachen )</p>
<p>WIrst nicht drumherumkommen, DIe sachen dynamisch zu laden, also bei bedarf und ned alles im speicher halten ....</p>
<p>WIllst scrollen, wuerd ich ne cached Liste anlegen, wo max zb. nur 100 elemente im speicher stehen und wenn weitere geladen werden (muessen) aeltere einfach wieder aus dem speicher werfen ....</p>
<p>Wenn die bilder alle die selben Farbpaletten haben, dann vielleicht in ne temp zwischendatei laden, wo nur einmal die farbpalette drin ist ... wie ReneG vielleicht vorgeschlagen hat, ne grosse Bitmap wo die Teilbitmaps in nem koordinatensystem zu nem grossen bild zusammen gerastert sind.</p>
<p>Bei 50000 bitmaps in der liste wird er dann halt mit etwas wartezeit beim scrollen belohnt <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> Aber programmieren muesstest das per hand ...</p>
<p>Ciao ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315506</guid><dc:creator><![CDATA[RHBaum]]></dc:creator><pubDate>Wed, 23 Jul 2003 11:32:12 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 12:01:05 GMT]]></title><description><![CDATA[<p>wenn man sich eine spalte bilder haelt.<br />
(32 schriftzeichen uebereinader) kann man die gemuetlich in einem std::vector&lt;byte[90][50*32]&gt; speichern und bei jedem scroll schreibt man einfach diesen vector in ne bitmap.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315556</guid><dc:creator><![CDATA[.b7f7]]></dc:creator><pubDate>Wed, 23 Jul 2003 12:01:05 GMT</pubDate></item><item><title><![CDATA[Reply to Speichermangel bei mehr als 5000 BMPs!! on Wed, 23 Jul 2003 13:47:00 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/3842">@RHBaum</a><br />
Eigentlich hast du recht, mit dem bestrafen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Aber Spaß beiseite. Das Prinzip funktioniert folgendermaßen:</p>
<p>In meiner MDI Anwendung halte ich im Dokument alle Zeichen des Fonts als CObListe. Ein Zeichen ist eigentlich nichts anderes als ein 2 dimensionales Array [50][90], in dem die Werte schwarz oder weiß gespeichert sind (schwarz für ein gesetztes Pixel).<br />
Damit ich nun alle Zeichen in einem extra Fenster anzeigen kann, habe ich eine CObListe von genausovielen Bitmaps erstellt, wie Zeichen im Font vorhanden sind. Außerdem habe ich dazu passend auch eine CObListe von Gerätekontexten erstellt, damit die Bitmaps überhaupt auf dem Bildschirm darstellbar sind. Beim Erzeugen werden die Bitmaps Pixel für Pixel gefüllt. Dargestellt werden diese Bitmaps tabellarisch, d.h. 16 Zeilen und x Spalten. Das ganze sieht wie folgt aus:</p>
<pre><code class="language-cpp">// Bitmap Liste
CObList m_BmpObjList;	
CBitmap* m_pBmpList;

// Liste Speicherkontext
CObList m_CDCObjList;	
CDC* m_pCDCList;

CClientDC dcScreen(this);

// Anlegen von k Bitmaps und Speicherkontexten in der Liste
for(int k=0; k&lt;nSum; k++)
{
	m_pBmpList = new CBitmap;// Anlegen eines CBitmap-Objektes
	m_BmpObjList.AddTail(m_pBmpList); // Einfügen in die Bmp-Liste
    m_pBmpList-&gt;CreateCompatibleBitmap(&amp;dcScreen,50,90);

	// Speicherkontext
	m_pCDCList = new CDC;
	m_CDCObjList.AddTail(m_pCDCList);
	m_pCDCList-&gt;CreateCompatibleDC(&amp;dcScreen);
}
</code></pre>
<p>Da jedes Bitmap in der Liste der gleichen Position meiner Zeichenliste entspricht, errechne ich über</p>
<pre><code class="language-cpp">pDC-&gt;GetClipBox()
</code></pre>
<p>und durch die Spalten und Zeilen die Zeichen, die nur beim Scrollen dargestellt werden sollen und übergebe die errechneten Indexwerte meiner Funktion</p>
<pre><code class="language-cpp">CFontView::DrawFont(ZeichenNr)
</code></pre>
<p>, welche über den Wert 'ZeichenNr' das entsprechende Bitmap lädt und dann</p>
<pre><code class="language-cpp">pDC-&gt;StretchBlt(....m_pCDCList...);
</code></pre>
<p>aufruft, womit das Bmp auf den Bildschirm projiziert wird.</p>
<p>Ich hoffe ich konnte dir (und natürlich auch den anderen) den Ablauf etwas besser erläutern <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/315638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/315638</guid><dc:creator><![CDATA[rg_Basser]]></dc:creator><pubDate>Wed, 23 Jul 2003 13:47:00 GMT</pubDate></item></channel></rss>