dieser "kleine" Source hier soll einem das Verwalten von Speicher-
bereichen erleichtern. Geschrieben wurde er für PB 4.0. Möchte an
dieser Stelle auch noch mal Deeem für seine Hilfe danken. Ohne ihn
könnte ich den Source hier jetzt nicht posten

und Winduff für ihre Geduld :P.
Vorgehensweise:
Inspiriert von Deeems Source, um Threads im Suspend Mode starten
zu lassen, habe ich auch hier die Befehle von PureBasic leicht im
Speicher modifziert. Aufgrund dieser Vorgehensweise ist dieser Source
auch soweit an PB4 gebunden.
Die Funktion ersetzt im Speicher die Aufrufe zu HeapAlloc und HeapFree
durch eigene Routinen: AllocFake und FreeFake.
Installation:
Die Installation dieses Sources in das eigene Projekt ist ganz einfach.
Ihr erstellt einfach eine neue Datei in die ihr den Source rein kopiert.
Danach lasst ihr die Datei per IncludeFile mit kompilieren und fertig
ist es. Am Start des hauptprogramms sollte aber ein
Code: Alles auswählen
If HookAllocMem()
...
EndIf
Befehle:
- UsedMemory()
- Rückgabe: Long
- Beschreibung:
Diese Funktion gibt den aktuell genutzten Speicher wieder.
- ExamineMemorys()
- Rückgabe: Boolean
- Beschreibung:
Diese Funktion startet das Abarbeiten aller Speicherbereiche, die bis
zu diesem Zeitpunkt erstellt wurden.
- NextMemory()
- Rückgabe: Boolean
- Beschreibung:
Diese Funktion sollte in Kombination mit der While Schleifen und nach
einem erfolgreichen Aufruf des Befehls ExamineMemorys() aus-
geführt werden. So lange es ein weiteres Element in der Liste gibt, wird
sie #True zurückgeben.
- SelectMemory(*pMemory)
- Rückgabe: Boolean
- Beschreibung:
Durch diese Funktion wird der Zeiger im Speicherpool auf das Element
gelegt, was die Speicheradesse *pMemory beinhaltet.
- GetMemoryInfo(lMode.l)
- Rückgabe: Long
- Beschreibung:
Mit Hilfe von diesem Befehl kann man entweder den Pointer oder die
Größe des gerade ausgewählten Speicherbereichs ermitteln. Hier für
wird der Parameter genutzt.
- 1: Zeiger auf den Speicherbereich
- 2: Größe des Speicherbereichs
- HookAllocMem()
- Rückgabe: Boolean
- Beschreibung:
Führt die Hooks auf die 2 Befehle AllocateMemory() und FreeMemory()
aus. Der Rückgabewert nennt den Erfolg.
http://source.eimex.de/mvxa/Beispiel.pb
http://source.eimex.de/mvxa/MemMngr.pb