Seite 1 von 2

AllocMemory()

Verfasst: 14.09.2004 21:00
von tft
Hi...

bei diversen Codes aus dem PureAreaNet bekomme ich immer den Fehler (zu fiele parameter). Hauptsächlich bei AllocMemory(1,28) etc.

Verfasst: 14.09.2004 21:25
von Lars
Nach Möglichkeit den AllocarteMemory() anpassen und zurück an Andre
schicken (natürlich nach Überprüfung, dass man nichts kaput gemacht
hat). Andre freut sich bestimmt :)

Dieser Fehler tritt auf, weil in der Version 3.9 die #MemoryID völlig
abgeschaffst wurde und nur noch mit der Speicheradresse gearbeitet wird.
Früher musste man also alles per #MemoryID ansprechen, jetzt per
Ergebniss von AllocateMemory().

Für nähere Infos möge man die Hilfe zu Rate ziehen.

Verfasst: 14.09.2004 21:27
von Deeem2031
Is das ein Hinweis oder willst du wissen wie man das ändert?

Also ich mache das immer folgendermaßen:

Code: Alles auswählen

AllocateMemory(0,1024)
...
FreeMemory(0)
wird zu:

Code: Alles auswählen

Buffer0 = AllocateMemory(1024)
...
FreeMemory(Buffer0)
Wenn vor AllocateMemory() eine variable steht ändert man das ein bischen ab:

Code: Alles auswählen

Var = AllocateMemory(0,1024)

Code: Alles auswählen

Buffer0 = AllocateMemory(1024)
Var = Buffer0
sieht zwar bisl doof aus, reicht aber meistens aus.

Verfasst: 14.09.2004 21:30
von Rings
Auszug aus der 3.90 version readme

Code: Alles auswählen

12th April 2004
PureBasic V3.90 (Windows) 
..
- Changed: no more #Memory ID and flag for AllocateMemory()
..
das heisst es hat sich was in den Aufrufparametern geändert.
Den Rest hat deeem erklärt

Verfasst: 14.09.2004 21:46
von tft
Hi...

danke für die Info.

Verfasst: 15.09.2004 00:07
von Andre
Lars hat geschrieben:Nach Möglichkeit den AllocarteMemory() anpassen und zurück an Andre
schicken (natürlich nach Überprüfung, dass man nichts kaput gemacht
hat). Andre freut sich bestimmt :)


:mrgreen:

Natürlich bin ich immer dankbar für dsbzgl. Unterstützung. Tommeh aus dem engl. Forum / Chat hatte mir am Wochenende seine Hilfe angeboten. Mal sehen, ob er das existierende CodeArchiv kurzfristig PB3.91-kompatibel bekommt, während ich mich um neue Codes/CAV-Tool kümmere.... :wink:

Verfasst: 15.09.2004 09:08
von coldarchon
Deeem2031 hat geschrieben:Wenn vor AllocateMemory() eine variable steht ändert man das ein bischen ab:

Code: Alles auswählen

Var = AllocateMemory(0,1024)

Code: Alles auswählen

Buffer0 = AllocateMemory(1024)
Var = Buffer0
sieht zwar bisl doof aus, reicht aber meistens aus.
huh?

Verfasst: 15.09.2004 14:46
von NicTheQuick
Was meinst du mit "huh?"? Ist da was schwer dran zu verstehen?

Verfasst: 15.09.2004 14:56
von sbehrens
würde denn

Code: Alles auswählen

Var = AllocateMemory(1024)
nicht auch reichen?

mfG
Basti

Verfasst: 15.09.2004 15:00
von NicTheQuick
Das reicht solange wie die Variable "Var" nicht geändert wird. Schließlich musst du den Speicher nach Gebrauch wieder mit dem Rückgabewert als Handle freigeben. Wird das Handle geändert oder gelöscht, kannst du den Speicher nicht mehr freigeben, außer du beendest das Programm. Man sollte sich aber selbst angewöhnen solche Sachen selbst zu kontrollieren und freizugeben.