Announcement

Collapse
No announcement yet.

dauerhaft Speicher anlegen (Problem !!!)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • dauerhaft Speicher anlegen (Problem !!!)

    Hallo,

    ich habe zwar schon mal ähnlich gepostet, aber da niemand antwortet formuliere ich die Frage um:<BR>
    Für ein Projekt muss ich einen Speicher anlegen, der im Prinzip unbegrenzt gültig bleiben muss (jedenfalls so lange das Programm läuft).<BR>
    <BR>
    1. Der Speicher wird nur einmal angelegt.<BR>
    2. Danach wird der Speicher die ganze Zeit verwendet (so ca. 60mal pro Minute ein Schreib- und Lesezugriff über 2MB Größe)<BR>
    3. Es ist nicht möglich den Speicher vor jedem Zugriff neu anzulegen und danach zu löschen (sicher auch nicht sinnvoll)<BR>
    4. Am Programmende wird der Speicher wieder gelöscht<BR>
    <BR>
    Folgendes Problem:
    Nach einiger Zeit (ca. 10h Laufzeit) wird der Speicher plötzlich ungültig, bzw. jeder Zugriff auf den Speicher gelingt zwar, es sind aber nur von 0 enthalten. Im Speicher sollte aber ein Bild stehen.<BR>
    <BR>
    Es gibt meines Wissens nach 3 Möglichkeiten Speicher anzulegen:<BR><B>
    1. GetMem <BR>
    2. GlobalAlloc+GlobalLock<BR>
    3. VirtuallAlloc<BR></B>
    Welche Methode ist die beste, weil Win32 konform und die sicherste?<BR>
    Mit welcher Methode sind die wenigsten Probleme zu erwarten?<BR>
    <BR>
    grüsse<BR>
    Sebastian

  • #2
    GetMem(), sie nutzt intern VirtualAlloc(), sprich Virtual***() API.<bR>
    Zusätzlich stellt GetMem() den OS unabhängigen Weg dar, sprich Linux conform.<br>
    Du kannst mit getMem() am Anfang deine 2Mb allozieren und das wars dann. Im schlechtesten Falle gibt das OS beim Terminieren des Prozessen den kompletten Speicher selber frei.<br>

    Gruß Hage

    Comment

    Working...
    X